symfony2中sonata配置可以是yml文件,也可以是xml文件,还可以xml和yml共同存在。
当你使用sonata生成命令来生成初步的后台结构:
1 |
php app/console sonata:admin:generate AppBundle\Entity\Demo |
你会发现它不能生成xml,只能生成yml文件。那么我不想把一次一次的把yml里的配置导入到xml中。
其实只需要向配置xml文件一样配置就可以共同使用了(很容易)。
services.xml是我原始的xml版本,admin.yml是命令生成的新文件
在app/config/config.yml中是这样
1 2 3 4 5 6 |
imports: - { resource: parameters.yml } - { resource: security.yml } - { resource: services.yml } - { resource: @AsaWebBundle/Resources/config/services.xml } - { resource: @AsaWebBundle/Resources/config/admin.yml } |
你还需要在DependencyInjection/VasaWebExtension.php中load这个admin.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/** * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.xml'); $loaderyml = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loaderyml->load('admin.yml'); } |
ok了,当你刷新sonataadmin管理后台你就会看到你新生成的admin被显示了。