Gacela 帮助您将项目划分为模块

1.8.0 2024-08-17 20:50 UTC

README

GitHub Build Status Scrutinizer Code Quality Scrutinizer Code Coverage Psalm Type-coverage Status Mutation testing badge MIT Software License

Gacela 帮助您构建模块化应用程序

愿景:简化您在 Web 应用程序中不同模块之间的通信。

使命:规范化模块的入口点,不干扰您的领域业务逻辑。

将项目划分为不同的模块有助于维护性和可扩展性。它鼓励模块通过遵循以下规则以统一的方式相互交互

  • 模块仅通过其 外观 交互
  • 外观 是模块的 入口点
  • 工厂 管理模块的 内部依赖
  • 供应商 解决模块的 外部依赖
  • 配置 访问项目的 配置文件

安装

composer require gacela-project/gacela

模块结构

您可以使用模块名称作为 gacela 类的前缀来提高可读性。更多关于 gacela 的信息,请参阅 这里

使用 gacela 模块的示例应用程序结构

application-name
├── gacela.php
├── config
│   └── ...
│
├── src
│   ├── ModuleA
│   │   ├── Domain
│   │   │   └── ...
│   │   ├── Application
│   │   │   └── ...
│   │   ├── Infrastructure
│   │   │   └── ...
│   │   │ # These are the 4 "gacela classes":
│   │   ├── Facade.php
│   │   ├── Factory.php
│   │   ├── Provider.php
│   │   └── Config.php
│   │
│   └── ModuleB
│       └── ...
│
├── tests
│   └── ...
└── vendor
    └── ...

文档

您可以在官方 网站 上查看完整的文档。

示例

您可以在 此存储库 中查看使用 gacela 的示例。

贡献

欢迎您贡献,包括报告 问题、分享 想法 或通过您的拉取请求 贡献

灵感来源于 Spryker 框架: https://github.com/spryker