如何安装Symfony2的第三方Bundle

简介:

Symfony2是一个非常优秀的框架,但它也仅仅只是框架。框架的作用众所周知是为了能够快速开发出代码组织良好的应用程序,而且基于框架开发者可以集中精力进行业务逻辑的开发,而不会将精力浪费在其它细节上面。虽然框架有着很多的好处,但它并不象CMS、Wordpress之类的PHP程序那样是拿来就可以用的,它要实现某种功能是需要开发的。

第三方的Bundle其实部分解决了这个问题,当你需要基于Doctrine的用户和角色时,你无须开发一个用户和角色的Bundle,而只需要安装Symfony2Bundle网站中的UserBundle即可。同样,你需要管理功能,只需安装AdminBundle。同样还有MenuBundle、RestBundle等第三方的Bundle供你使用。那么为什么要使用第三方Bundle而不自行开发呢?原因一来是那句老话不要重复去发明轮子,二来则是与框架一样的,将精力集中在业务逻辑上(这通常是独一无二或无法重用的)。

那么如何将第三方的Bundle安装到Symfony2系统中呢?

安装第三方Bundle

首先,找到第三方Bundle,查看它Resources/doc/目录中的index.rst,看看它的Bundle名、下载目录和安装目录。以UserBundle为例,查看其Resources/doc/index.rst文件中的安装语句;

然后,打开Symfony2目录中的deps文件(该文件位于Symfony/根目录下),将安装语句添加在该文件的末尾,如下所示:

 
  1. [FOSUserBundle] 
  2.     git=git://github.com/FriendsOfSymfony/UserBundle.git 
  3.     target=/bundles/FOS/UserBundle 

最后运行命令行命令(在Symfony2根目录下):

 
  1. $ php bin/vendors install 
  2. > Installing/Updating symfony 
  3. ... 
  4. > Installing/Updating FOSUserBundle 
  5. Cloning into /var/www/Symfony/vendor//bundles/FOS/UserBundle... 
  6. remote: Counting objects: 7715, done. 
  7. remote: Compressing objects: 100% (2730/2730), done. 
  8. remote: Total 7715 (delta 4942), reused 7285 (delta 4570) 
  9. Receiving objects: 100% (7715/7715), 916.65 KiB | 105 KiB/s, done. 
  10. Resolving deltas: 100% (4942/4942), done. 
  11. HEAD is now at 86bf6fa Updated commands for Symfony changes. Breaks compatibility with beta5 
  12. ... 

这样就已经下载并安装了UserBundle了。

如果你更新第三方的Bundle,你只需要在命令行中输入:

 
  1. $ php bin/vendors update 
  2. ... 
  3. > Installing/Updating FOSUserBundle 
  4. Cloning into /var/www/Symfony/vendor//bundles/FOS/UserBundle... 
  5. remote: Counting objects: 7720, done. 
  6. remote: Compressing objects: 100% (2733/2733), done. 
  7. remote: Total 7720 (delta 4945), reused 7288 (delta 4571) 
  8. Receiving objects: 100% (7720/7720), 917.08 KiB | 171 KiB/s, done. 
  9. Resolving deltas: 100% (4945/4945), done. 
  10. HEAD is now at affe193 Updated the doc to use the ini syntax for the deps file 
  11. ... 

从上例不难看出UserBundle进行了更新,对文档中的deps文件部分使用了ini语法。

激活第三方Bundle

安装好了就要进行使用,在Symfony2中安装Bundle和激活Bundle是两个概念,要使用就必须得激活,激活其实已经在上一篇博文《Symfony2入门》中已经说得很清楚了,这里权当复习一遍:

首先,确保FOS名称空间可以被自动加载,在app/autoload.php文件中添加以下语句:

 
  1. $loader->registerNamespaces(array(   
  2.     // ... 
  3.     //添加自定义的名称空间   
  4.     'FOS' => __DIR__.'/../vendor/bundles', 
  5.     // ...   
  6. ));  

其次,将该Bundle注册到Symfony2中,请在你的app/AppKernel.php文件中添加下列语句:

 
  1. // app/AppKernel.php  
  2. public function registerBundles()  
  3. {  
  4.     $bundles = array(  
  5.         // ...  
  6.         new FOS\UserBundle\FOSUserBundle(),  
  7.     );  
  8.   
  9.     // ...  
  10.   
  11.     return $bundles;  
  12. }  

注意,由于该Bundle需要SecurityBundle,所以要确保SecurityBundle已经被注册。

打完收功!!我们已经安装并激活了一个第三方的Bundle。如果兄弟们有什么疑问的话可以下面的评论中直接提。



本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/593426,如需转载请自行联系原作者

相关文章
|
7月前
|
开发工具
如何使用webpack打包一个库library,使用webpack打包sdk.
如何使用webpack打包一个库library,使用webpack打包sdk.
118 0
webpack配置篇(三十六):发布构建包到npm社区
webpack配置篇(三十六):发布构建包到npm社区
75 0
webpack配置篇(三十六):发布构建包到npm社区
|
缓存 前端开发 JavaScript
webpack拓展篇(六十八):bundle 和 bundless 的差异
webpack拓展篇(六十八):bundle 和 bundless 的差异
111 0
webpack拓展篇(六十八):bundle 和 bundless 的差异
|
程序员 定位技术 vr&ar
最新 iOS 库 打包篇.a .bundle .framework
库是共享程序代码的方式,一般分为静态库和动态库。库是程序代码的集合,是共享程序代码的一种方式
617 0
最新 iOS 库 打包篇.a .bundle .framework
|
程序员 定位技术 vr&ar
iOS 库 打包篇.a .bundle .framework
库是程序代码的集合,是共享程序代码的一种方式
229 0
iOS 库 打包篇.a .bundle .framework
webpack-bundle-analyzer查看项目依赖报告
webpack-bundle-analyzer查看项目依赖报告
290 0
webpack-bundle-analyzer查看项目依赖报告
webpack打包library发布到npm
webpack打包library发布到npm
148 0
|
JavaScript
flutter web:lottie jssdk报错处理
升级到Flutter 2.0后,在使用过程中发现会报错类似NoSuchMethod: call(),导致后续的动画显示不出来。 (注意:这个问题是将渲染器改成Html Render之后出现的,不知道在CanvasKit上会不会出现) 但是报错的堆栈信息根本没用,除了知道源头是lottie.js中的triggerEvent函数
139 0
|
资源调度 JavaScript 前端开发
客户端开发(Electron)加入webpack
客户端开发(Electron)加入webpack
299 0
客户端开发(Electron)加入webpack
|
Dart 数据可视化 Android开发
【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )(一)
【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )(一)
554 0
【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )(一)