atnic/lumen-generator

Lumen 框架的生成器。

安装: 12

依赖: 0

建议者: 0

安全: 0

星星: 2

关注者: 2

分支: 0

开放问题: 1

类型:软件包

v0.1.1 2019-06-08 20:46 UTC

This package is auto-updated.

Last update: 2024-09-09 08:26:38 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

需求

安装

编辑 composer.json

{
  "require": {
    "atnic/lumen-generator": "^0.1"
  },
  "require-dev": {
    "phpunit/phpunit": "^7.0"
  }
}

然后运行 composer update。之后执行以下初始步骤

  • 设置你的 .env 文件。
  • app/User.php 中,将 api_token 添加到 $hidden 属性中。
  • bootstrap/app.php 中,取消注释并添加一些行
    ...
    $app->withFacades();
    
    $app->withEloquent();
    ...
    $app->routeMiddleware([
        'auth' => App\Http\Middleware\Authenticate::class,
    ]);
    ...
    $app->register(App\Providers\AppServiceProvider::class);
    $app->register(App\Providers\AuthServiceProvider::class);
    $app->register(App\Providers\EventServiceProvider::class);
    
    $app->register(Atnic\LumenGenerator\Providers\AppServiceProvider::class);
    $app->register(Atnic\LumenGenerator\Providers\ConsoleServiceProvider::class);
    
    $app->register(Laravel\Passport\PassportServiceProvider::class);
    ...
  • 更新 database/factories/ModelFactory.php,添加 passwordapi_token
    $factory->define(App\User::class, function (Faker\Generator $faker) {
        return [
            'name' => $faker->name,
            'email' => $faker->email,
            'password' => app('hash')->make('password'),
            'api_token' => str_random()
        ];
    });
  • 更新 .gitignore
    /database/*.sqlite
    /storage/*.key
    
  • phpunit.xml 中,如果存在则移除属性 syntaxCheck="false"(例如 Lumen 5.5),因为它与新 phpunit 包不兼容
  • 然后运行
    php artisan app:install

制作模块(CRUD)

此软件包覆盖了一些 Laravel artisan 命令。

这是在此项目中创建 Foo 模块的示例

php artisan make:controller --model=Foo FooController

然后执行以下步骤

  • 检查 database/migrations/ 中的新迁移,添加所需的列。
  • 检查 database/factories/ 中的新工厂,添加所需的属性。
  • 检查 app/ 中的新模型,添加所需的更改。
  • 检查 app/Filters/ 中的新过滤器,完成所有的 TODO: 并在完成后移除注释。
  • 检查英文 resources/lang/en 并从英文复制到 resources/lang/id,根据需要添加语言。
  • 检查 app/Http/Controllers/ 中的新控制器,在方法 relations() visibles() fields() rules() 中完成返回的数组,完成所有的 TODO: 并在完成后移除注释。
  • 检查 app/Policies/ 中的新策略,完成所有的 TODO: 并在完成后移除注释。
  • 不需要将新的策略追加到 app/Providers/AuthServiceProvider.php 中的 $policies 属性。此软件包处理策略自动发现,甚至适用于 Laravel < 5.8。
  • 检查 tests/Feature/ 中的新测试,完成所有的 TODO: 并在完成后移除注释。

其他有用命令

# Creating Nested Controller
php artisan make:controller --parent=Foo --model=Bar Foo/BarController

# Create Single Action Controller
php artisan make:controller DashboardController

所有新/覆盖的命令都可以在 vendor/atnic/lumen-generator/app/Console/Commands 中查看。