laravel 5.7 创建“Transformer” (变形文件) 命令


第一步--生成命令文件

php artisan make:command MakeTransformer

第二步--编辑生成文件的命令文件

`app/Console/Commands/MakeTransformer.php`

<?php

namespace App\Console\Commands;

use Illuminate\Support\Str;
use Illuminate\Console\GeneratorCommand;

class MakeTransformer extends GeneratorCommand
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'make:transformer {name}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '创建 transformer 变形文件';

    /**
     * @return string
     */
    protected function getStub()
    {
        return __DIR__.'/stubs/transformer';
    }

    /**
     * @param $name
     * @return string
     */
    protected function getPath($name)
    {
        $name = Str::replaceFirst($this->rootNamespace(), '', $name);

        return $this->laravel['path'].'/'.str_replace('\\', '/', $name).'Transformer.php';
    }

    /**
     * @param $name
     * @return mixed
     */
    protected function buildClass($name)
    {
        $stub = $this->files->get($this->getStub());

        return $this->replaceClass($this->replaceInstance($stub, $name), $name);
    }

    /**
     * @param $stub
     * @param $name
     * @return mixed
     */
    protected function replaceInstance($stub, $name)
    {
        $class = str_replace($this->getNamespace($name).'\\', '', $name);

        return str_replace('dummyInstance', lcfirst($class), $stub);
    }

    /**
     * @param $rootNamespace
     * @return string
     */
    protected function getDefaultNamespace($rootNamespace)
    {
        return $rootNamespace.'\Transformers';
    }
}

第三步--创建模板文件

`app/Console/Commands/stubs/transformer`

<?php

namespace App\Transformers;

use App\Models\DummyClass;
use League\Fractal\TransformerAbstract;

class DummyClassTransformer extends TransformerAbstract
{
    public function transform(DummyClass $dummyInstance)
    {
        return [
            'id' => $dummyInstance->id,
        ];
    }
}

第四部--使用命令 ,可以没有Transformer后缀

php artisan make:transformer {name}

文件路径`app/Transformers/{name}.php`

总结

  1. 生成命令文件
  2. 编辑命令文件
  3. 创建模板文件
  4. 使用命令
来源: 原创
标签: laravel dingo command 命令

作者介绍

Image Description

zfajax舫

小时候的梦想是当宇航员,长大的梦想是在北京买套90㎡房的小站长、自媒体人,2014年毕业,后从事过网站开发搭建工作;2016年,创建了张舫博客;20015-至今在北京工作(微信:a7983310)

评论列表

还没有人评论,抢占前排沙发

发表评论

关于作者

Image Description

zfajax舫

小时候的梦想是当宇航员,长大的梦想是在北京买套90㎡房的小站长、自媒体人,2014年毕业,后从事过网站开发搭建工作;2016年,创建了张舫博客;20015-至今在北京工作(微信:a7983310)

关注作者

Social Links

定制项目外包

Unit 25 Suite 3, 925 Prospect PI,
Beach Resort, 23001

手机号码

18600004319