erikaraujo/laravel-stubs

具有资源的具有观点的Laravel占位符

1.0.1 2021-04-16 05:00 UTC

This package is auto-updated.

Last update: 2024-09-16 13:13:27 UTC


README

主要占位符更改

  • 控制器不扩展基本Controller;
  • 根据传递的参数,这还将为控制器添加资源;
  • 迁移没有down函数;
  • 模型默认具有withfillable
  • 已移除docblocks;

安装

通过composer安装此包

composer require erikaraujo/laravel-stubs --dev

如果您希望将占位符与每个更新保持同步,请将此composer钩子添加到您的composer.json文件中

"scripts": {
    "post-update-cmd": [
        "@php artisan erikaraujo-stub:publish --force"
    ]
}

注意:此操作具有force参数,这将使新占位符覆盖占位符文件夹中的现有占位符。

用法

使用以下artisan命令发布占位符

php artisan erikaraujo-stub:publish

选项

  1. --force
php artisan erikaraujo-stub:publish --softdeletes

除非您使用--force,否则不会替换./stubs文件夹中的现有占位符。

  1. --softdeletes
php artisan erikaraujo-stub:publish --softdeletes

这将自动将SoftDeletes特性添加到您的模型占位符中,将$table->softdeletes()添加到您的迁移占位符中,并将forceDelete()restore()方法添加到控制器中。

  1. --inertia
php artisan erikaraujo-stub:publish --inertia

这将默认将Inertia\Inertia导入所有非API控制器占位符,并为控制器方法添加资源(如果提供模型)。

资源示例

public function index()
{
    return Inertia::render('{{ model }}/Index', [
        '{{ modelVariable }}' => {{ model }}::paginate()->onEachSide(1),
    ]);
}
  1. --json
php artisan erikaraujo-stub:publish --json

这将向所有API控制器添加资源,并返回带有正确HTTP响应代码的JSON响应。

资源示例

public function index()
{
    ${{ modelVariable }} = {{ model }}::all();

    return response()->json([
        'data' => ${{ modelVariable }},
        'total' => ${{ modelVariable }}->count(),
    ], 200);
}
  1. 多个您可以将这些选项混合搭配,一切都将正确应用。以下所有示例都很好
php artisan erikaraujo-stub:publish --inertia --softdeletes
php artisan erikaraujo-stub:publish --json --softdeletes
php artisan erikaraujo-stub:publish --json --inertia --softdeletes
php artisan erikaraujo-stub:publish --json --inertia --softdeletes --force

测试

待办事项:添加测试以覆盖所有可能的混合匹配场景。

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

目前,只需创建一个PR,我会查看。