tharindu / facade_generator
一个用于生成门面和服务的 Laravel 扩展包。
v1.0.0
2024-07-04 10:57 UTC
Requires
- php: >=8.1
- illuminate/support: ^10.0|^11.0
- phpunit/phpunit: ^9.0|^10.0|^11.0
README
Laravel 域名生成器 是一个扩展包,它为您的 Laravel 应用程序提供了一种方便的方式来生成域服务和门面。
安装
您可以通过 Composer 安装此扩展包
composer require tharindu/facade_generator
用法
要生成域服务和门面,请使用 make:domain
Artisan 命令
php artisan make:domain User
此命令将在 domain
目录中创建以下文件
ServiceNameFacade.php
ServiceNameService.php
然后您可以使用这些文件来实现您的域逻辑。
自动加载域目录
为确保 Laravel 自动加载您的自定义 domain
目录,您需要更新 Laravel 应用的 composer.json
文件。按照以下步骤操作
-
打开您的 Laravel 应用的
composer.json
文件。 -
定位到
autoload
部分。 它应该看起来像这样"autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories" ] },
-
将您的
domain
目录添加到 PSR-4 自动加载部分。 如果您的域目录位于 Laravel 应用的根目录,您可以这样添加"autoload": { "psr-4": { "App\\": "app/", "Domain\\": "domain/" }, "classmap": [ "database/seeds", "database/factories" ] },
请确保根据您应用的实际结构调整路径
"Domain\\"
和"domain/"
。 -
运行
composer dump-autoload
以重新生成 Composer 自动加载器文件composer dump-autoload
一旦进行这些更改,Laravel 将像对待 app
目录一样自动加载来自您的 domain
目录的类,使您的域逻辑在整个应用程序中易于访问。
功能
此扩展包提供了以下功能
- 生成域服务和门面:使用
make:domain
命令轻松创建域服务和门面。 - CRUD 功能:生成的服务占位符包含管理域实体的基本 CRUD 操作。
- 创建:创建新的域实体。
- 读取:检索特定的域实体。
- 更新:更新现有的域实体。
- 删除:删除域实体。
- 列表:检索域实体的列表。
示例
生成域
要生成名为 User
的域服务和门面,请运行
php artisan make:domain User
这将创建 UserFacade.php
和 UserService.php
文件到 domain
目录。
使用生成的文件
一旦文件生成,您可以在服务方法内部实现您的域逻辑。例如
<?php namespace Domain\Services\UserService; use App\Models\User; class UserService { protected $user; public function __construct() { $this->user = new User(); } public function get(int $user_id) { return $this->user->find($user_id); } public function create(array $data) { return $this->user->create($data); } public function read($id) { // Implement read functionality } protected function edit(User $user, array $data) { return array_merge($user->toArray(), $data); } public function update($user_id , array $data) { $user = $this->user->find($user_id); return $user->update($this->edit($user, $data)); } public function delete($id) { $user = $this->user->find($id); return $user->delete(); } public function list() { return $this->user->all(); } }
贡献
欢迎贡献!请随时提交拉取请求。
许可证
Laravel 域名生成器是开源软件,受 MIT 许可证 许可。