awoyotoyin/zf-muscle

基于 DoctrineORMModule 的复合 ZF2 解决方案

dev-master 2016-02-27 22:41 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:37 UTC


README

简介

这是一个带有基本 Web 应用程序功能的复合模块。该应用程序旨在作为那些想要深入了解 ZF2 的主要起点。

什么是它?为什么需要它?

什么是它?

ZfMuscle 是一个构建用于帮助您无需担心如何限制页面访问和限制用户操作的 Zend Framework 2 管理模块。它使用基于功能的 ZfcUserDoctrineORM by @ZF-Commons 和 BjyAuthorize by @bjyoungblood 模块;将 ZfcUser by @ZF-Commons 模块留给您进行自定义修改。本质上,它是一个完全样式化/模板化的后端模块,不仅管理对您自定义后端模块的访问,还管理整个应用程序。

为什么需要它?

由于我总是需要在需要限制资源访问并必须重新编码和硬编码所有这些的项目上工作,我觉得如果有一个模块可以完成所有这些工作会不错,就像 (我知道,有 @bjyoungblood 的 BjyAuthorize 用于 ACL,@ZF-Commons 的 ZfcUser 用于用户管理) 作为一个包一样?

一个灵活且可扩展的模块,其中包含所有这些功能?经过一番思考,我的回答是“那会很酷”。

仍然不明白为什么需要它?那么,为什么不亲自尝试一下,看看它是否值得所有努力呢。

演示预览

https://zfmuscletest.herokuapp.com/ 上查看演示预览。
TODO: 安装应用程序并打开演示管理员登录和密码

安装

使用 Composer(推荐)

将以下行添加到您的 "composer.json" 文件中

//...
"require": {
    "awoyotoyin/zf-muscle": "dev-master"
}
//...

配置

  1. 将 "ZfMuscle", "DoctrineModule", "DoctrineORMModule", "AssetManager", "ZfcBase", "ZfcUser", "ZfcUserDoctrineORM" 和 "BjyAuthorize" 添加到您的 application.config.php 文件中。

    示例

    'modules' => array(
        //...
        'AssetManager',
        'ZendDeveloperTools',
        'DoctrineModule',
        'DoctrineORMModule',
        'ZfcBase',
        'ZfcUser',
        'ZfcUserDoctrineORM',
        'Application',
        'BjyAuthorize',
        'ZfMuscle',
        ...
    )
    
  2. 将具有 .dist 扩展名的文件从配置复制到您的应用程序自动加载中,并删除 .dist 扩展名。

注意

《bjyauthorize.global.php.dist》 文件允许您使用嵌入的用户权限。

样式和其他资产

要使用此模块的资产,将

//...
public/
    zf-muscle/
    //...

目录复制/移动到您的应用程序主公共文件夹中,因此您的文件夹结构如下所示

//...
public/
    //...
    zf-muscle/
            css/
            img/
            js/
            //...

TODO: 告诉应用程序使用资产,提供正确的路径而不是移动/复制它们。这可以通过 AssetManager 模块实现

重要注意事项

  1. 此模块基本上接管了您的应用程序的控制权。

  2. 它在安装时提供了一个安装向导。

  3. 它使用 BjyAuthorize 模块的路由守卫,因此所有路由定义都必须具有默认值。

    示例

    ...
    'edit' => [
       'type' => 'Segment',
       'options' => [
           'route' => '/edit[/:id]',
           'constraints' => [
               'id' => '[0-9]*',
           ],
           'defaults' => [
               'controller' => 'zfmuscle-user',
               'action'     => 'register',
           ],
       ],
    ],
    ...
    
  4. 由于应用程序自动导入所有加载的模块中定义的所有路由,因此没有路由定义的模块不需要检查路由。因此,只提供少量配置以跳过此类模块。

要在导入期间跳过模块,请打开 config/autoload/zfmuscle.global.php 文件,并在 'skip_modules' 键下定义此类模块。

Example:
```
...
// list of modules to skip for acl
'skip_modules' => [
   'ZendDeveloperTools',
   'DoctrineModule',
   'DoctrineORMModule',
   'AssetManager',
   'ZfcUserDoctrineORM',
   'BjyAuthorize',
   'ZfcBase',
   ...
],
...
```

权限设置

注意 此模块使用 BjyAuthorize 模块的路由守卫 ACL