youshido / admin
用于简化集成和生成管理员的Bundle
1.0.0
2015-07-06 15:36 UTC
Requires
- php: >=5.4
- doctrine/doctrine-bundle: ~1.3
- symfony/form: ~2.3
- symfony/framework-bundle: ~2.3
- youshido/doctrine-extension: dev-master
- youshido/uploadable: dev-master
README
1. 通过composer安装所需的Bundle
composer require youshido/admin composer require liip/imagine-bundle
2. 启用Bundle
//AppKernel.php $bundles = [ //... new Youshido\AdminBundle\YAdminBundle(), new Liip\ImagineBundle\LiipImagineBundle(), ];
3. 创建您自己的Admin Bundle
php app/console generate:bundle --namespace=AdminBundle --bundle-name=AdminBundle --dir=src
4. 在您的AdminBundle默认控制器中创建操作
//AdminBundle\Controller\DefaultController /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/", name="admin.dashboard") * @Route("/dashboard", name="project.admin.dashboard") */ public function indexAction() { $this->get('admin.context')->setActiveModuleName('dashboard'); return $this->render('YAdminBundle:Default:index.html.twig', [ 'siteStatistics' => null, 'widgets' => [ ], ] ); }
5. 启用路由
//routing.yml admin: resource: "@YAdminBundle/Controller/" type: annotation prefix: /admin app_admin: #your admin bundle resource: "@AdminBundle/Controller/" type: annotation prefix: /admin _liip_imagine: resource: "@LiipImagineBundle/Resources/config/routing.xml"
6. 添加到您的config.yml
//config.yml liip_imagine: resolvers: default: web_path: ~ filter_sets: cache: ~ thumbnail_120x90: quality: 75 filters: thumbnail: { size: [120, 90], mode: outbound } thumbnail_50x50: quality: 75 filters: thumbnail: { size: [50, 50], mode: outbound } !!! twig: //... globals: adminContext: '@admin.context'
7. 添加到您的security.yml
role_hierarchy: ROLE_ADMIN: [ROLE_USER] ROLE_SUPER_ADMIN: [ROLE_ADMIN] providers: admin_provider: entity: class: Youshido\AdminBundle\Entity\AdminUser property: login encoders: Youshido\AdminBundle\Entity\AdminUser: md5 firewalls: admin_free: pattern: ^/admin/login$ # ^/(?:ua/)?admin/login$ - if you have internationalization context: admin anonymous: ~ admin_firewall: pattern: ^/admin # ^/(?:ua/)?admin - if you have internationalization provider: admin_provider context: admin form_login: login_path: admin.login check_path: admin.login_check logout: path: admin.logout target: /admin
8. 在app/config/admin目录中创建名为'structure.yml'的文件,内容如下
name: "Your project name" modules: dashboard: icon: fa fa-home route: admin.dashboard type: ~ imports: - { resource: ../../../vendor/youshido/admin/Resources/config/admin/structure.admin.yml }
9. 在控制台运行
php app/console doctrine:schema:update --force php app/console admin:setup
10. 为您的实体生成配置
php app/console admin:generate
!!! 不要忘记将生成的文件导入到structure.yml中
11. 如果您使用国际化,请进行配置
//app/admin/structure.yml internationalization: enable: true locales: en: ~ ua: ~ ru: ~