youshido/admin

用于简化集成和生成管理员的Bundle

安装: 513

依赖: 1

建议者: 0

安全: 0

星标: 1

关注者: 5

分支: 3

语言:CSS

类型:symfony-bundle

1.0.0 2015-07-06 15:36 UTC

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: ~