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';
- }
- }
|