salehhashemi / laravel-domain-expert
Laravel Domain Expert 是一个直观的 Laravel 扩展包,通过简化领域创建、管理和组织来简化领域驱动开发。
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- laravel/pint: ^1.8
- orchestra/testbench: ^6.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.0
README
Laravel Domain Expert 是一个帮助您在 Laravel 应用程序中创建和管理领域驱动目录结构的扩展包。它自动化了设置新领域所需文件夹、控制器和带有路由组和领域前缀的简单路由文件的过程。
AI 驱动的领域推荐
Laravel Domain Expert 包含一个 AI 驱动的领域推荐功能,可以帮助您自动将现有的控制器和模型分组和组织到领域驱动结构中。
要使用此功能,请运行以下命令
php artisan suggest:domains
AI 将猜测应用程序的目的并提供一个结构良好的组织,无需用户输入任何额外信息。
AI 系统的示例输出
安装
要安装 Laravel Domain Expert,您可以使用 Composer
composer require salehhashemi/laravel-domain-expert
用法
创建新领域
要创建新的领域目录结构,请运行以下命令
php artisan make:domain DomainName
将 DomainName 替换为您希望领域使用的名称。
该命令将在您的 Laravel 应用程序中创建领域目录结构,包括示例控制器和带有路由组和领域前缀的简单路由文件。
领域结构
当您使用 php artisan make:domain DomainName 命令创建新领域时,将生成以下目录结构
Domains
└── DomainName
├── Exceptions
├── Http
│ ├── Controllers
│ │ ├── DomainNameController.php
│ ├── Middleware
│ └── Requests
├── Jobs
├── Models
├── Observers
├── Repositories
├── resources
│ ├── css
│ ├── js
│ └── views
├── routes
│ └── web.php
└── Services
这种结构帮助您以领域驱动的方式组织代码,随着应用程序的增长,使其更容易管理和维护。
在领域内创建控制器
要创建特定领域中的新控制器,请使用 -d 或 --domain 标志
php artisan make:controller ControllerName -d
或
php artisan make:controller ControllerName --domain
使用 -d 或 --domain 标志时,您将提示选择要创建控制器的领域。
其他命令
您可以使用相同的常规操作来制作
- 观察者
php artisan make:observer ObserverName --domain
- 模型
php artisan make:model ModelName --domain
自动加载路由和视图
该扩展包包括内置支持来自动加载每个领域的路由和视图。当您的扩展包安装并注册服务提供程序时,DomainAutoScanServiceProvider 类将扫描 Domains 目录并自动发现和加载每个领域的路由和视图文件。
示例:在控制器中调用视图
要引用领域内的视图,请使用领域名称作为命名空间,后跟两个冒号和视图文件路径。以下是如何在控制器中调用视图的示例
return view('DomainName::view-name');
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近发生了哪些变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。
