hasheado / admin-bundle
基于 SonataAdminBundle 的 Symfony2 扩展包,用于生成管理员界面
Requires
- php: >=5.3.2
- sonata-project/admin-bundle: ~2.3
- sonata-project/doctrine-orm-admin-bundle: ~2.3
- sonata-project/easy-extends-bundle: ~2.1.9
- sonata-project/user-bundle: 2.2.x
- symfony/framework-bundle: >=2.3
This package is not auto-updated.
Last update: 2024-09-24 15:28:32 UTC
README
步骤 1: 下载扩展包
注意:此扩展包依赖于 SonataAdminBundle、SonataUserBundle 和 SonataDoctrineORMAdminBundle。
在已经运行的 Symfony 安装中,编辑你的 composer.json 文件,并添加以下行
require: { "hasheado/admin-bundle": "dev-master" }
然后,打开命令行,进入你的项目目录,并执行以下命令以下载此扩展包的最新稳定版本
$ composer update
此命令要求你全局安装了 Composer,请参阅 Composer 文档的 安装章节。
步骤 2: 启用扩展包
为了启用扩展包,我们需要在你的项目中的 app/AppKernel.php
文件中添加以下行
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... // Add dependencies new Sonata\CoreBundle\SonataCoreBundle(), new Sonata\BlockBundle\SonataBlockBundle(), new Knp\Bundle\MenuBundle\KnpMenuBundle(), new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(), new FOS\UserBundle\FOSUserBundle(), new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'), new Sonata\EasyExtendsBundle\SonataEasyExtendsBundle(), // Then add SonataAdminBundle new Sonata\AdminBundle\SonataAdminBundle(), // And HasheadoAdminBundle new Hasheado\AdminBundle\HasheadoAdminBundle(), ); // ... } // ... }
步骤 3: 配置
如果你遵循了安装说明,HasheadoAdminBundle 应该已经安装,但无法访问。在开始使用之前,你需要先为你的模型配置它。
导入 HasheadoAdminBundle 的配置文件
# app/config/config.yml imports: - { resource: @HasheadoAdminBundle/Resources/config/config.yml } sonata_user: class: user: pathToYourBundle\Entity\User group: pathToYourBundle\Entity\Group fos_user: db_driver: orm # can be orm or odm firewall_name: admin user_class: pathToYourBundle\Entity\User group: group_class: pathToYourBundle\Entity\Group group_manager: sonata.user.orm.group_manager # If you're using doctrine orm (use sonata.user.mongodb.user_manager for mongodb) service: user_manager: sonata.user.orm.user_manager # If you're using doctrine orm (use sonata.user.mongodb.group_manager for mongodb) from_email: address: noreply@adminbundle.com sender_name: Hasheado Admin Bundle
当然,替换你的 User 和/或 Group 实体的路径,并且不要忘记让你的类继承 Sonata\UserBundle\Entity\BaseUser 和 Sonata\UserBundle\Entity\BaseGroup 类。
然后你需要添加以下安全配置
# app/config/security.yml security: role_hierarchy: ROLE_ADMIN: [ROLE_USER, ROLE_SONATA_ADMIN] ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] SONATA: - ROLE_SONATA_PAGE_ADMIN_PAGE_EDIT # if you are using acl then this line must be commented providers: fos_userbundle: id: fos_user.user_manager encoders: FOS\UserBundle\Model\UserInterface: sha512 firewalls: # Disabling the security for the web debug toolbar, the profiler and Assetic. dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false # -> custom firewall for the admin area of the URL admin: pattern: /admin(.*) context: user form_login: provider: fos_userbundle login_path: /admin/login use_forward: false check_path: /admin/login_check failure_path: null logout: path: /admin/logout target: /admin anonymous: true # -> end custom configuration acl: connection: default access_control: # Admin login page needs to be access without credential - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY } # Secured part of the site # This config requires being logged for the whole site and having the admin role for the admin part. # Change these rules to adapt them to your needs - { path: ^/admin/, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] } - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
到这一点,扩展包已经可用,但还不是完全准备好。
你需要更新模式
php app/console doctrine:schema:update --force
并创建一个新的 root 用户
php app/console fos:user:create --super-admin
为了能够访问 HasheadoAdminBundle 的页面,你需要将其路由添加到应用程序的路由文件中
# app/config/routing.yml admin: resource: '@HasheadoAdminBundle/Resources/config/routing.yml'
最后,发布资产
php app/console assets:install
到这一点,你已可以通过访问 URL: http://yoursite.local/admin/dashboard 访问(空的)管理员仪表板。然后,按照 SonataAdminBundle 文档开始添加你的管理员。
错误 & 改进
请提交问题: HasheadoAdminBundle 的问题