Cml\Console\Commands\Make\Controller::execute PHP Метод

execute() публичный Метод

创建控制器
public execute ( array $args, array $options = [] )
$args array 参数
$options array 选项
    public function execute(array $args, array $options = [])
    {
        $template = isset($options['template']) ? $options['template'] : false;
        $template || ($template = __DIR__ . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'Controller.php.dist');
        $name = $args[0];
        $name = explode('-', $name);
        if (count($name) < 2) {
            throw new \InvalidArgumentException(sprintf('The arg name "%s" is invalid. eg: adminbase-Blog/Category', $name));
        }
        $namespace = trim(trim($name[0], '\\/'));
        $path = Cml::getApplicationDir('apps_path') . DIRECTORY_SEPARATOR . $namespace . DIRECTORY_SEPARATOR . Cml::getApplicationDir('app_controller_path_name') . DIRECTORY_SEPARATOR;
        $component = explode('/', trim(trim($name[1], '/')));
        if (count($component) > 1) {
            $className = ucfirst(array_pop($component)) . Config::get('controller_suffix');
            $component = implode(DIRECTORY_SEPARATOR, $component);
            $path .= $component . DIRECTORY_SEPARATOR;
            $component = '\\' . $component;
        } else {
            $className = ucfirst($component[0]) . Config::get('controller_suffix');
            $component = '';
        }
        if (!is_dir($path) && false == mkdir($path, 0700, true)) {
            throw new \RuntimeException(sprintf('The path "%s" could not be create', $path));
        }
        $contents = strtr(file_get_contents($template), ['$namespace' => $namespace, '$component' => $component, '$className' => $className]);
        if (false === file_put_contents($path . $className . '.php', $contents)) {
            throw new \RuntimeException(sprintf('The file "%s" could not be written to', $path));
        }
        Output::writeln(Colour::colour('Controller created successfully. ', Colour::GREEN));
    }
Controller