t4web/crud

ZF2 模块。用于管理领域实体的抽象层

1.3.0 2019-05-13 12:52 UTC

This package is auto-updated.

Last update: 2024-09-14 02:30:59 UTC


README

ZF2 模块。用于管理领域实体的抽象层

内容

安装

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

"require": {
  "t4web/crud": "~1.0.0"
}

现在,通过运行以下命令让 composer 下载 T4web\Crud

$ php composer.phar update

安装后

application.config.php 文件中启用它。

<?php
return array(
  'modules' => array(
      // ...
      'T4web\Crud',
  ),
  // ...
);

简介

此模块生成 CRUD 路由并提供基本的 CRUD 方法及其定制。在我们的视图中,CRUD 包含 6 个操作

  • new - 动作,显示新条目表单
  • create - 动作,接收条目值数组,验证值并创建实体
  • read - 动作,显示一个实体,验证条件参数和条目存在
  • update - 动作,接收条目值数组,验证条件参数和条目存在,验证值并更新实体
  • delete - 动作,删除一个实体,验证条件参数和条目存在
  • list - 动作,根据条件(过滤器)显示实体

此外,此模块还提供用于通过简短别名创建领域服务的抽象工厂

  • ENTITY_NAME-crud-create-service - 将创建 T4webDomain\Service\Creator
  • ENTITY_NAME-crud-read-service - 将创建 T4web\Crud\Service\ReadService
  • ENTITY_NAME-crud-update-service - 将创建 T4webDomain\Service\Updater
  • ENTITY_NAME-crud-delete-service - 将创建 T4webDomain\Service\Deleter
  • ENTITY_NAME-crud-list-service - 将创建 T4web\Crud\Service\ListService

配置选项

为了使用 T4web\Crud 功能,您必须定义 route-generation 配置

'route-generation' => [
    [
        'entity' => 'user',
        'backend' => [
            'namespace' => '/backend',
            'actions' => [
                'new',
                'create',
                'read',
                'update',
                'delete',
                'list',
            ],
            'options' => [
                'create' => [
                    'changesValidator' => Action\Admin\User\CreateAction\ChangesValidator::class,
                    'controller' => Action\Admin\User\CreateAction\Controller::class,
                    'allowedMethods' => ['POST'],
                    'service' => 'user-crud-delete-service',
                    'redirectTo' => 'admin-user-list',
                ],
                'update' => [
                    'changesValidator' => Action\Admin\User\CreateAction\ChangesValidator::class,
                ],
            ],
        ],
    ],
],

其中 entity - URI 的实体名称(例如:/backend/user/new,'/backend/user/create'...),actions - 定义哪些操作将被处理,如果您没有定义 delete 操作,则不会创建删除 URI,options - 定义每个操作的自定义选项(见 sebaks/zend-mvc-controller

对于当前配置,将创建以下路由

'routes' => [
    'admin-user-new' => [
        'type' => 'Segment',
        'options' => [
            'route'    => '/backend/user/new',
            'defaults' => [
                'allowedMethods' => ['GET'],
                'controller' => 'sebaks-zend-mvc-controller',
            ],
        ],
    ],
    'admin-user-create' => [
        'type' => 'Segment',
        'options' => [
            'route'    => '/backend/user/create',
            'defaults' => [
                'allowedMethods' => ['POST'],
                'controller' => 'Users\Action\Admin\User\CreateAction\Controller',
                'service' => 'user-crud-create-service',
                'redirectTo' => 'admin-user-list',
                'changesValidator' => 'Users\Action\Admin\User\CreateAction\ChangesValidator',
            ],
        ],
    ],
    'admin-user-read' => [
        'type' => 'Segment',
        'options' => [
            'route'    => '/backend/user/read/:id',
            'defaults' => [
                'allowedMethods' => ['GET'],
                'controller' => 'sebaks-zend-mvc-controller',
                'routeCriteria' => 'id',
                'service' => 'user-crud-read-service',
                'criteriaValidator' => 'user-crud-id-validator',
            ],
        ],
    ],
    'admin-user-update' => [
        'type' => 'Segment',
        'options' => [
            'route'    => '/backend/user/update/:id',
            'defaults' => [
                'allowedMethods' => ['POST'],
                'controller' => 'sebaks-zend-mvc-controller',
                'routeCriteria' => 'id',
                'criteriaValidator' => 'user-crud-id-validator'
                'service' => 'user-crud-update-service',
                'redirectTo' => 'admin-user-list',
            ],
        ],
    ],
    'admin-user-delete' => [
        'type' => 'Segment',
        'options' => [
            'route'    => '/backend/user/delete/:id',
            'defaults' => [
                'allowedMethods' => ['GET'],
                'controller' => 'sebaks-zend-mvc-controller',
                'routeCriteria' => 'id',
                'criteriaValidator' => 'user-crud-id-validator'
                'service' => 'user-crud-delete-service',
                'redirectTo' => 'admin-user-list',
            ],
        ],
    ],
]