xmolecules / phpmolecules
帮助开发者用PHP代码表达架构抽象的库
v0.2.0
2022-05-31 17:19 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpstan/phpstan: ^1.7
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
README
一组库,帮助开发者用PHP处理架构概念。xMolecules家族成员。目标
- 表达一段代码(命名空间、类、方法等)实现了某个架构概念。
- 使人类读者容易确定给定的代码段属于哪种架构概念。
- 允许工具集成(如生成持久性或静态架构分析以验证架构规则的有效性。)
表达领域驱动设计(DDD)概念
示例
use PHPMolecules\DDD\Attribute\{Entity, ValueObject, Repository}; #[Entity] class BankAccount { /* ... */ } #[ValueObject] class Currency { /* ... */ } #[Repository] class Accounts { /* ... */ }
当我们认真对待通用语言时,我们希望名称(类、方法等)只包含领域语言中的单词。这意味着构建块的标题不应该包含在名称中。所以在一个银行领域,我们不想使用BankAccountEntity
、CurrencyVO
甚至AccountRepository
作为类型。相反,我们希望使用BankAccount
、Currency
和Accounts
- 如上例所示。
尽管如此,我们仍然希望表达某个类(或其他架构元素)是一个特殊的构建块;即使用设计模式。PHPMolecules提供了一套标准的注释,用于标记从DDD中已知的构建块。
表达架构
phpMolecules提供注释来标记一个包为层(或环)
待办事项:从jMolecules迁移文档。
安装
要在项目中使用phpMolecules,只需通过Packagist使用Composer安装它
composer require xmolecules/phpmolecules
发布说明
创建一个新的Git版本标签并推送
git tag --sign vX.Y.Z git push --tags