SonataAdminBundle可以在项目的任何时期安装,无论你的项目是干净的symfony2还是现有项目。
1.安装
1.1下载代码
使用composer来管理SonataAdminBundle的依赖和下载
1 |
php composer.phar require sonata-project/admin-bundle |
会让你输入一个版本。‘dev-master’会让你下载最新版本,与最新的symfony2版本兼容。
1 |
Please provide a version constraint for the sonata-project/admin-bundle requirement: dev-master |
1.2选择下载一个存储Bundle
SonataAdminBundle与存储无关,这意味着它可以与多个存储机制工作。这取决于你的项目,你可以选择以下包之一。点击相应的链接,你会发现他们每个bundle的简单安装说明:
- SonataDoctrineORMAdminBundle
- SonataDoctrineMongoDBAdminBundle
- SonataPropelAdminBundle
- SonataDoctrinePhpcrAdminBundle
如果你不知道选哪个你就使用SonataDoctrineORMAdmin,他与传统的关系型数据库(MySql和PostgreSQL)互动
1.3启用SonataAdminBundle和他的依赖
SonataAdminBundle会依赖其他的bundle来实现某些功能。除了第二步中提到的存储层,还需要其他bundle:
这些bundle会作为SonataAdminBundle的依赖在composer中自动下载。但是,你必须要在你的AppKernel.php中手动配置一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php // app/AppKernel.php public function registerBundles() { return array( // ... // The admin requires some twig functions defined in the security // bundle, like is_granted new Symfony\Bundle\SecurityBundle\SecurityBundle(), // Add your dependencies new Sonata\CoreBundle\SonataCoreBundle(), new Sonata\BlockBundle\SonataBlockBundle(), new Knp\Bundle\MenuBundle\KnpMenuBundle(), //... // If you haven't already, add the storage bundle // This example uses SonataDoctrineORMAdmin but // it works the same with the alternatives new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(), // Then add SonataAdminBundle new Sonata\AdminBundle\SonataAdminBundle(), // ... ); } |
1.4配置SonataAdminBundle依赖
你需要配置SonataAdminBundle的依赖。对于上面的每一个Bundle,都需要学习各自的安装和配置方式,来配置到你的程序中。
SonataAdminBundle提供的仪表盘管理采用SonataBlockBundle。为了能够使用它,你需要在配置用启用它:
1 2 3 4 5 6 7 8 |
# app/config/config.yml sonata_block: default_contexts: [cms] blocks: # Enable the SonataAdminBundle block sonata.admin.block.admin_list: contexts: [admin] # Your other blocks |
注意:不用担心,如果在这点上你还不太明白没有关系。SonataBlockBundle是一个有用的工具,以后你在了解他,现在他不是最重要的。
1.5清理
现在,安装资产
1 |
php app/console assets:install web |
通常,你安装一个新的bundle和其他,你需要清除一下缓存
1 |
php app/console cache:clear |
在这一点上,你的SonataAdminBundle和它的依赖没有错误显示,所以已经安装成功。但是有些东西你还为配置,你还无法正常使用它。
如果你在安装过程中,出现问题不要惊慌。
仔细阅读错误信息,试图找出哪些bundle导致的错误。
确保你按照正确的方式安装
你可以查询google看看是否有相同的问题
仍然没有处理?尝试看看GitHub上的开放问题