crixuamg/laravel-decorators

9.0.0-beta-13 2023-12-29 20:55 UTC

README

Latest Stable Version Latest Unstable Version Total Downloads

关于
安装
使用
自定义
命令

安装

将以下内容放入您的 composer.json 文件中

    "require": {
        "crixuamg/laravel-decorators": "^6.0.0",
        // ...
    }

使用

发布配置文件后,按照文件底部所示注册装饰器。然后在控制器中扩展 AbstractController 并在 __construct() 中使用配置文件中创建的键调用 $this->setup()

Example:\
UserController

```php
use \CrixuAMG\Decorators\Http\Controllers\AbstractController;

class UserController extends AbstractController {
    public function __construct()
    {
        $this->setup('users', UserResource::class);
    }

    public function index() {
       return $this->forwardResourceful(__FUNCTION__);
    }
 }
```
And put the following in
config/decorators.php

```php
    'tree' => [
        'users'                => [
            'contract'  => App\Contracts\UserContract::class,
            'arguments' => [
                // First element is the deepest layer
                App\Repositories\UserRepository::class,
                App\Caches\UserCache::class,
                App\Decorators\UserDecorator::class,
            ],
        ],
    ]
```

当访问连接到索引方法的路由时,应用程序将经过 UserDecorator、UserCache 和 UserRepository。然后它将逆序通过相同的类,传递返回的数据并执行所需操作,如缓存和触发事件。处理完所有内容后,将使用在 __construct 中声明的资源返回数据。

自定义

您可以在 config/decorators.php 文件中设置一个 enabled 标志。当它设置为 false 时,任何实现 CrixuAMG\Decorators\Caches\AbstractCache 类的装饰器都将被忽略。

命令

为了使开发更快、更简单,已经创建了一些命令来提高易用性。

    php artisan decorator:cache      ModelCache
    php artisan decorator:repository ModelRepository
    php artisan decorator:contract   ModelContract

或者,创建三个命令

    php artisan decorators:make User

为了您的方便,已包含一个命令,可以自动创建以下内容

  • 模型
  • 控制器
  • 合约
  • 缓存
  • 仓库
  • 资源
    php artisan decorators:starter User

以下选项可用于创建额外的文件

  • -m 创建迁移
  • -d 创建装饰器
  • -r 在 app/Http/Requests// 中创建 4 个请求类(Show、Store、Update、Delete)