a2workspace / laravel-stubs

一个基于项目的类别模板注入器。

1.1.0 2022-09-04 01:25 UTC

This package is auto-updated.

Last update: 2024-09-04 05:31:37 UTC


README

一个基于项目的程序模板注入器。

Laravel-Stubs demo

通过在项目中的 resources/stubs 目录下放置类别的模板文件,然后通过命令快速注入并生成。相比原生的 artisan make:* 命令可以大大减少编写时间,且模板文件可以随版控被 git 记录。

目前支持的类别类型:

  • 以 App\* 开头的命名空间类别
  • 以 Tests\* 开头的命名空间类别
  • 以 Database\* 开头的命名空间类别

安装 | 安装

执行以下命令通过 composer 引入到您的 Laravel 项目中

composer require a2workspace/laravel-stubs

然后使用 vendor:publish 命令生成配置文件与 resources/stubs 文件夹

php artisan vendor:publish --tag=@a2workspace/laravel-stubs

默认的 resources/stubs 文件夹内附带一个简单的示例。

使用 | 如何使用

现在您可以使用 make:a... Artisan 命令 来生成类别。该命令将读取 resources/stubs 下的目录或 .php 文件,将占位符根据格式替换为给定的名称,并按照类别名称自动生成文件到相应的路径。

php artisan make:a...

可以传递一个搜索参数

php artisan make:a... Example

开发 | 如何编写自己的类别模板

类别模板 默认存放在 resources/stubs 目录下,支持单个 .php 文件或整个目录包。文件名不会影响注入过程,laravel-stubs 将以最终处理完的 namespace 作为依据,将生成的文件放置到项目的相对路径。

您可以创建一个 类别模板 并通过 Dummy 占位符填充类别名称。

一个简单的 Model 模板如下

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Dummy extends Model
{
    protected $table = 'dummies';
}

在生成时 laravel-stubs 将会按照以下规则替换

  • Dummy: 替换为开头大写格式的注入名称
  • Dummies: 替换为复数形式,开头大写格式的注入名称
  • dummy: 替换为小写格式的注入名称
  • dummies: 替换为复数形式,小写格式的注入名称

处理的原始代码可参考 StubGeneratorCommand::replaceClass()

详细信息可参考 resources/stubs 下默认的模板。