monarc / core
monarc/monarc 应用程序的核心
Requires
- php: ^7.4 || ^8.0
- ext-intl: *
- ext-json: *
- ext-openssl: *
- doctrine/doctrine-orm-module: ^5.1
- laminas/laminas-dependency-plugin: ^2.0
- laminas/laminas-di: ^3.1
- laminas/laminas-filter: ^2.9
- laminas/laminas-i18n: ^2.9
- laminas/laminas-inputfilter: ^2.10
- laminas/laminas-log: ^2.11
- laminas/laminas-mail: ^2.10
- laminas/laminas-mvc: ^3.1
- ocramius/proxy-manager: ^2.13
- ramsey/uuid-doctrine: ^1.5
- robmorgan/phinx: ^0.13.4
- robthree/twofactorauth: ^1.8
Requires (Dev)
- roave/security-advisories: dev-latest
- dev-master
- v2.12.7-p2
- v2.12.7-p1
- v2.12.7
- v2.12.6-p1
- v2.12.6
- v2.12.5
- v2.12.4-p1
- v2.12.4
- v2.12.3-p3
- v2.12.3-p2
- v2.12.3-p1
- v2.12.3
- v2.12.2
- v2.12.1-p3
- v2.12.1-p2
- v2.12.1-p1
- v2.12.1
- v2.12.0
- v2.11.1-p11
- v2.11.1-p10
- v2.11.1-p9
- v2.11.1-p8
- v2.11.1-p7
- v2.11.1-p6
- v2.11.1-p5
- v2.11.1-p4
- v2.11.1-p3
- v2.11.1-p2
- v2.11.1-p1
- v2.11.1
- v2.11.0-p3
- v2.11.0-p2
- v2.11.0-p1
- v2.11.0
- v2.10.4
- v2.10.3
- v2.10.2
- v2.9.21
- v2.9.20
- v2.9.19
- v2.9.18
- v2.9.17
- v2.9.16
- v2.9.15
- 2.9.14
- 2.9.13
- v2.9.12
- v2.9.11
- 2.9.10
- 2.9.9
- 2.9.8
- 2.9.7
- 2.9.6
- 2.9.5
- 2.9.4
- 2.9.3
- v2.9.2
- 2.9.1
- dev-feature/remove-db-abstract
- dev-patch-object-display
- dev-feature/2FA-E
- dev-feature/fixReset
- dev-feature/multiple-specific-model
- dev-feature/compliance-scale
- dev-feature/metadata-assets
- dev-bugfix/339
- dev-feature/248
- dev-feature/internationalization
- dev-feature/spanish-language
- dev-feature/stats
- dev-bugfix/261
- dev-ldap
- dev-customAuth
- dev-issue#7
This package is auto-updated.
Last update: 2024-09-27 10:34:47 UTC
README
以下方面的开发笔记
- 实体
- 表格
- 控制器
- 服务
- 在 module.config.php 中的容器配置
- 测试覆盖率
实体
实体的创建应通过简单的对象实例化来完成,例如:
$myEntityClass = (new MyEntityClass())
->setName('name')
->setCode('codde');
实体应具有单一责任,并且不应自行执行任何数据库相关操作。
注意!
将移除 AbstractEntity
继承,并且清理实体的过滤器方法。
生成迁移文件并与数据库一起迁移,添加/删除/更改列
php ./vendor/bin/doctrine-module migrations:diff
php ./vendor/bin/doctrine-module migrations:migrate
实体表格
在 Model/Table 文件夹中实现表格(仓库)类,并扩展 AbstractTable
。
在表格构造函数中必须传递一个实体类名,该表格负责管理该实体,例如:
public function __construct(EntityManager $entityManager)
{
parent::__construct($entityManager, \MyEntityNamespace\MyEntityClass::class);
}
表格方法,负责从数据库获取数据,应从 findBy
前缀开始。AbstractTable 有帮助进行基本实体操作的方法。
- 保存
- 删除
- 等等。
在模块配置文件中,需要定义表类创建的方式。在大多数情况下,它与 Laminas\Di\Container\AutowireFactory
一起工作得很好。
\MyEntityNamespace\MyEntityClass::class => AutowireFactory::class,
控制器
控制器应扩展 Laminas\Mvc\Controller\AbstractRestfulController
。
需要定义的 Restful 应用程序方法
- getList()
- get($id)
- create($data)
- update($id, $data)
- delete($id)
在 module.config.php
中,控制器通常在工厂容器中定义,如下所示:
ControllerNameSpace\MyController::class => AutowireFactory::class,
服务
注意
新创建的服务类不应扩展 AbstractService
,将来将被移除。
在模块配置文件中,服务容器看起来像这样:
ServiceNamescpace\MyService::class => Laminas\Di\Container\AutowireFactory::class,
或者,如果需要注入配置:
ServiceNamescpace\MyService::class => Laminas\ServiceManager\AbstractFactory\ReflectionBasedAbstractFactory::class,
测试覆盖率
部分实现是在 MonarcAppFO 一侧完成的,因为集成和功能测试应该涵盖 MONARC 应用程序的核心和前端办公室模块。
单元测试可以在特定项目的一侧实现。
我们可能会从当前的 Core/FrontOffice 模块方法迁移到库/责任特定的方法,并且测试也将随之迁移。
许可证
本软件根据 GNU Affero 通用公共许可证第 3 版 许可。
- 版权 (C) 2016-2020 Jérôme Lombardi - https://github.com/jerolomb
- 版权 (C) 2016-2020 Juan Rocha - https://github.com/jfrocha
- 版权 (C) 2016-2020 SMILE gie securitymadein.lu
- 版权 (C) 2017-2020 Cédric Bonhomme - https://www.cedricbonhomme.org
- 版权 (C) 2019-2021 Ruslan Baidan
- 版权 (C) 2016-2017 Guillaume Lesniak
- 版权 (C) 2016-2017 Thomas Metois
- 版权 (C) 2016-2017 Jérôme De Almeida
有关更多信息,请参阅 作者和贡献者列表。
免责声明:本程序分发时希望它将是有用的,但没有任何保证;甚至没有关于其商售性或适用于特定目的的暗示保证。有关详细信息,请参阅 GNU Affero 通用公共许可证。