rinomau/mva-crud

用于简化 Doctrine 实体 CRUD 操作的 ZF2 模块。

安装: 127

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 4

开放问题: 2

类型:zf2-module

dev-master 2013-11-09 10:54 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:44:11 UTC


README

Total Downloads

MvaCrud

扩展以简化 CRUD 开发的基模块。

安装

Composer

建议的安装方法是通过 composer

php composer.phar require rinomau/mva-crud:dev-master

  1. 在您的 composer.json 中添加此项目

    "require": {
        "rinomau/mva-crud": "dev-master"
    }
  2. 现在,通过运行以下命令告诉 composer 下载 MvaCrud

    $ php composer.phar update

Git 子模块

将此项目克隆到您的 ./vendor/ 目录中

```sh
cd vendor
git clone https://github.com/rinomau/MvaCrud.git
```

配置

全局配置

./vendor/rinomau/mva-crud/config/MvaCrud.config.php 复制到 ./config/autoload/MvaCrud.config.php。此配置参数适用于所有使用 MvaCrud 的模块

每个模块的配置

module/YourModule/config/config.php 中添加如下部分

    'MvaCrud' => array(
        __NAMESPACE__ => array(
            's_indexTitle'      => 'Index page default',
            's_indexTemplate'   => 'crud/index/index',
            's_newTitle'        => 'New page default',
            's_newTemplate'     => 'crud/index/default-form',
            's_editTitle'       => 'Edit page default',
            's_editTemplate'    => 'crud/index/default-form',
            's_detailTitle'     => 'Detail page default',
            's_detailTemplate'  => 'crud/index/detail',
            's_processErrorTitle'       => 'Form errors page default',
            's_processErrorTemplate'    => 'crud/index/default-form',
            's_deleteRouteRedirect'     => 'crud',
            's_processRouteRedirect'     => 'crud',
        )
    )

此配置参数适用于在指定命名空间中扩展 MvaCrud 的所有控制器

每个控制器的配置

在调用 MvaCrud 构造函数后,重新定义您想编辑的控制器参数,例如

class IndexController extends \MvaCrud\Controller\CrudIndexController {
    
    public function __construct($I_service, $I_form) {
        $entityName = 'Dog';
        parent::__construct($entityName, $I_service, $I_form);
        $this->s_indexTitle = 'Title specific for this controller';
    }
}

用法

在您的模块中创建一个具有 doctrine 实体的模块。在您的模块中扩展 CrudIndexController 和 CrudService

您的 indexController

class IndexController extends \MvaCrud\Controller\CrudIndexController {
    
    public function __construct($I_service, $I_form) {
        $entityName = 'Dog';
        parent::__construct($entityName, $I_service, $I_form);
    }
}

您的 EntityService

class DogService extends \MvaCrud\Service\CrudService {
    
    public function __construct($I_entityManager) {
        $this->I_entityRepository  = $I_entityManager->getRepository('MvaModuleTemplate\Entity\Dog');
        $this->I_entityManager = $I_entityManager;
        $I_dog = new Dog();

        parent::__construct($this->I_entityManager,$this->I_entityRepository,$I_dog);
    }
}

待办事项

  • 添加显示删除页面选项
  • 添加在删除前要求页面确认选项
  • 添加在删除前要求警报确认选项
  • 添加禁用列出所有实体选项
  • 添加检查用户是否有权查看/编辑/删除实体的函数
  • 添加在插入/删除/更新前后的触发事件
  • 添加显示实体详细信息的行为
  • 允许使用 doctrine 注解 @HasLifecycleCallbacks 并传播异常(这可以用来检查用户是否有权在存储库上插入/更新/删除)
  • 允许通过传递给 findBy 的选项数组来从控制器调用实体子集
  • 使用 hydrator 填充实体字段
  • 允许在不更改配置文件的情况下覆盖模板,只需创建正确的文件夹结构(如 zfcuser)
  • 向 Service 添加 fetchAllAsArray 函数,以轻松填充选择选项
  • 向 Service 添加 fetchAsArray($options) 函数,以轻松使用实体子集填充选择选项
  • 添加基表单,具有根据实体长度设置文本长度的方法