| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2016 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 刘志淳 <chun@engineer.com>// +----------------------------------------------------------------------namespace think\console\command\make;use think\console\command\Make;use think\console\input\Argument;use think\facade\App;class Command extends Make{    protected $type = "Command";    protected function configure()    {        parent::configure();        $this->setName('make:command')            ->addArgument('commandName', Argument::OPTIONAL, "The name of the command")            ->setDescription('Create a new command class');    }    protected function buildClass($name)    {        $commandName = $this->input->getArgument('commandName') ?: strtolower(basename($name));        $namespace   = trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\');        $class = str_replace($namespace . '\\', '', $name);        $stub  = file_get_contents($this->getStub());        return str_replace(['{%commandName%}', '{%className%}', '{%namespace%}', '{%app_namespace%}'], [            $commandName,            $class,            $namespace,            App::getNamespace(),        ], $stub);    }    protected function getStub()    {        return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'command.stub';    }    protected function getNamespace($appNamespace, $module)    {        return $appNamespace . '\\command';    }}
 |