yish/generators

此包已被废弃,不再维护。未建议替代包。

此包扩展了Laravel 5或更高版本中包含的核心文件生成器。

3.2.1 2020-09-09 04:25 UTC

README

Build Status Total Downloads Latest Stable Version License License

此包扩展了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)
    {
        //
    }
}