monarc/backoffice

monarc/monarc-backoffice应用程序的后台管理

v2.12.6-p2 2024-01-02 16:46 UTC

README

查看示例存储库以创建

  • 实体
  • 实体表
  • 控制器
  • 控制器工厂
  • 服务
  • 服务工厂
  • 并配置Module.php & module.config.php

实体

在Model/Entity文件夹中创建实体文件和类,并使用AbstractEntity扩展它。

定义protected属性,并使用DoctrineOrm来定义表和列。

Module.php:getServiceConfig()中,将它们添加到invokables

'\Monarc\Core\Model\Entity\MyEntity' => '\Monarc\Core\Model\Entity\MyEntity',

用于生成迁移文件和迁移数据库(添加/删除/更改列)

php ./vendor/bin/doctrine-module migrations:diff
php ./vendor/bin/doctrine-module migrations:migrate

实体表

在Model/Table文件夹中创建实体表文件和类,并使用AbstractEntityTable扩展它。

定义您自己的函数,用于从数据库中加载数据实体。AbstractEntityTable已经具有这些函数

  • getDb: 返回DB对象
  • fetchAll: 返回实体的所有数据
  • get: 返回实体
  • save
  • delete

Module.php:getServiceConfig()中,将它们添加到factories

'\Monarc\Core\Model\Table\MyEntityTable' => function($sm){
    return new Model\Table\MyEntityTable($sm->get('\Monarc\Core\Model\Db'));
},

控制器

在Controller文件夹中创建控制器文件和类,并使用AbstractController扩展。

添加功能

  • getList()
  • get($id)
  • create($data)
  • update($id, $data)
  • delete($id)

module.config.php中,定义路由和控制器

'controller' => '\Monarc\Core\Controller\MyIndex',

控制器工厂

在Controller文件夹中创建控制器工厂文件和类,并使用AbstractControllerFactory扩展。

定义protected $serviceName = '\Monarc\Core\Service\MyService';

Module.php:getControllerConfig()中,将它们添加到factories

'\Monarc\Core\Controller\MyIndex' => '\Monarc\Core\Controller\MyIndexControllerFactory',

服务

在Service文件夹中创建服务文件和类,并使用AbstractService扩展。

定义在此服务中使用的资源属性

protected $ressource1;
protected $ressource2;

以及业务函数。

用于访问资源

$this->get('ressource1');

$this->getServiceFactory();

服务工厂

在Service Factory文件夹中创建服务文件和类,并使用AbstractServiceFactory扩展。

定义在Service中加载的资源

protected $ressources = array(
	'ressource1'=> '\Monarc\Core\Model\Table\EntityTable',
	'ressource2'=> '\Monarc\Core\Model\Entity\Entity',
);

protected $ressources = '\Monarc\Core\Model\Table\EntityTable';

Module.php:getServiceConfig()中,将它们添加到factories

'\Monarc\Core\Service\MyIndexService' => '\Monarc\Core\Service\MyIndexServiceFactory',

许可协议

本软件根据GNU Affero General Public License版本3许可。

有关更多信息,请参阅作者和贡献者列表

免责声明:本程序分发时,希望它将是有用的,但没有任何保证;甚至没有关于其商誉或适合特定用途的暗示性保证。有关详细信息,请参阅GNU Affero General Public License。