yish / generators
此包已被废弃,不再维护。未建议替代包。
此包扩展了Laravel 5或更高版本中包含的核心文件生成器。
3.2.1
2020-09-09 04:25 UTC
Requires
- php: >=7
- illuminate/console: 5.*|^6.0|^7.0|^8.0
- illuminate/filesystem: 5.*|^6.0|^7.0|^8.0
- illuminate/support: 5.*|^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/database: ^3.5
- orchestra/testbench: ^3.5
- phpunit/phpunit: ~6.0
README
此包扩展了Laravel 5或更高版本中包含的核心文件生成器。
要求
PHP >= 7
Laravel >= 5
- 在5.4版本之前使用分支
1.1.x
- 在5.5 ~ 5.7版本中使用分支
2.0.x
- 在5.8 - 8.x版本中使用分支
3.x.x
安装
通过composer安装
$ composer require yish/generators
注册服务提供者
如果您使用的是Laravel 5.5或更高版本,您可以使用自动发现,您不需要将服务提供者放入app.php
中。
<?php //app.php 'providers' => [ \Yish\Generators\GeneratorsServiceProvider::class, ],
生成服务
它可以生成类服务。
$ php artisan make:service UserService
<?php namespace App\Services; use Yish\Generators\Foundation\Service\Service; class UserService { protected $repository; // }
它还支持抽象服务。您应注入您的仓库或模型,然后使用它。
all() create($attributes) first() firstBy($column, $value) find($id) findBy($column, $value) get() getBy($column, $value) update($id, $attributes) updateBy($column, $value, $attributes) destroy($id) destroyBy($column, $value) paginate($page = 12) paginateBy($column, $value, $page = 12)
生成仓库
它可以生成类仓库。
$ php artisan make:repository UserRepository
<?php namespace App\Repositories; use Yish\Generators\Foundation\Repository\Repository; class UserRepository { protected $model; // }
它还支持抽象仓库。您应注入您的模型,然后使用它。
all($columns = ['*']) create($attributes) update($id, array $attributes, array $options = []) updateBy($column, $value, array $attributes = [], array $options = []) first($columns = ['*']) firstBy($column, $value, $columns = ['*']) find($id, $columns = ['*']) findBy($column, $value, $columns = ['*']) get($columns = ['*']) getBy($column, $value, $columns = ['*']) destroy($ids) destroyBy($column, $value) paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) paginateBy($column, $value, $perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
生成转换器
它可以生成类转换器。
$ php artisan make:transformer UserTransformer
支持
TransformContract
<?php namespace Yish\Generators\Foundation\Transform; interface TransformContract { public function transform($attributes); }
助手/转换器()
// $instance => Transformer class. // $attributes => Need transform data, maybe array or collection etc. transformer(UserTransformer::class, $data);
生成格式化器
它可以生成类格式化器。
$ php artisan make:formatter UserFormatter
<?php namespace App\Formatters; use Illuminate\Http\Request; use Yish\Generators\Foundation\Format\FormatContract; use Yish\Generators\Foundation\Format\Statusable; class PostFormatter implements FormatContract { public function format(Request $request, $items = [], $message = '', $status = 200) { // } }
支持
FormatContract
<?php namespace Yish\Generators\Foundation\Format; use Illuminate\Http\Request; interface FormatContract { public function format(Request $request, $items = []); }
Statusable
您可以使用Statusable
特性和助函数formatter
来帮助您快速构建格式化格式。设置属性$status = true
,您可以得到成功格式。 $status
必须是布尔值,如果不是,您将得到异常。
<?php namespace App\Formatters; use Illuminate\Http\Request; use Yish\Generators\Foundation\Format\FormatContract; use Yish\Generators\Foundation\Format\Statusable; class PostFormatter implements FormatContract { use Statusable; protected $status = true; }
如果不设置,您可以将false
设置为获取失败格式。
<?php namespace App\Formatters; use Illuminate\Http\Request; use Yish\Generators\Foundation\Format\FormatContract; use Yish\Generators\Foundation\Format\Statusable; class PostFormatter implements FormatContract { use Statusable; protected $status = false; }
如果您需要自定义消息,您可以这样做
<?php namespace App\Formatters; use Illuminate\Http\Request; use Yish\Generators\Foundation\Format\FormatContract; use Yish\Generators\Foundation\Format\Statusable; class PostFormatter implements FormatContract { use Statusable; protected $status = false; public function message() { return 'hello world'. } }
或者您还可以自定义状态码,您可以这样做
<?php namespace App\Formatters; use Illuminate\Http\Request; use Illuminate\Http\Response; use Yish\Generators\Foundation\Format\FormatContract; use Yish\Generators\Foundation\Format\Statusable; use Yish\Generators\Foundation\Format\Formatter; class Success extends Formatter implements FormatContract { use Statusable; protected $status = false; public function code() { return Response::HTTP_ACCEPTED; } }
如果您需要自定义其他内容,请查看Yish\Generators\Foundation\Format\Statusable
获取更多详细信息。
助手/格式化器()
// $request => Must instance of `Illuminate\Http\Request`. // $instance => Formatter class. // $items => data. formatter(request(), UserFormatter::class, $data);
生成演示者
它可以生成类演示者。
$ php artisan make:presenter UserPresenter
<?php namespace App\Presenters; class UserPresenter { // }
生成基础
它可以生成类基础。
$ php artisan make:foundation Taggable
<?php namespace App\Foundation; class Taggable { // }
生成传输
它可以生成类传输。
$ php artisan make:transport UserTransport
<?php namespace App\Transports; class UserTransport { // }
生成解析器
它可以生成类解析器。
$ php artisan make:parser UserParser
<?php namespace App\Parsers; use Yish\Generators\Foundation\Parser\Parser; class UserParser extends Parser { public function parse(array $items) { return parent::parse($items); } public function keys() { return [ 'name', 'ages', 'location' ]; } }
$parser = app(UserParser::class)->parse(['Yish', 30, 'Taipei']); // ['name' => 'Yish', 'ages' => 30, 'location' => 'Taipei'];
生成响应
它可以生成类响应。
$ php artisan make:response UserResponse
<?php namespace App\Responses; use Illuminate\Contracts\Support\Responsable; class UserResponse implements Responsable { public function toResponse($request) { // } }