【问题标题】:Custom cli for codeignitercodeigniter 的自定义 cli
【发布时间】:2014-03-19 05:27:29
【问题描述】:

(我不知道如何用单词分隔) 我正在使用linux debian, 我对laravel有一种了解, 我想为 codeigniter 项目制作类似工匠的命令 我想做的事

mycommand create controller <controller name>

【问题讨论】:

标签: php linux node.js codeigniter command-line-interface


【解决方案1】:

您可以使用 codeigniter 和 run via cli。创建一个只接受 cli 请求的控制器,您可以在视图目录中制作模板,您可以在其中指定新控制器的外观。

控制器样本:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class create extends CI_Controller {

    public function __construct()
    {
        parent::__construct();

        if( ! $this->input->is_cli_request())
        {
            show_404();
        }
    }

    public function controller($controller_name = '', $dir = '')
    {
        if (empty($controller_name))
        {
            echo 'Please enter controller name!';
        }
        else
        {
            if ( ! empty($dir))
            {
                $dir = '/' . trim($dir, '/');
            }

            $fullpath = APPPATH . 'controllers' . $dir . '/' . $controller_name . EXT;

            if (file_exists($fullpath))
            {
                echo 'Filename exists.';
            }
            else
            {
                if ( ! is_dir(dirname($fullpath)) )
                {
                    mkdir(dirname($fullpath), 0777, true) or die("Unable to create a directory!");
                }

                $data = array('controller_name' => $controller_name);

                $template = $this->load->view('template/controller', $data, true);

                $file = fopen($fullpath, "w") or die("Unable to create a file!");

                fwrite($file, html_entity_decode($template));

                echo $controller_name . ' created.';
            }
        }
    }

}

查看示例:

&lt;?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class <?php echo $controller_name ?> extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {

    }

}

我将我的控制器放在 cli 文件夹下,该文件夹将驻留在 APPPATH/controller/cli/create.php 中

要运行此脚本,请通过 index.php 所在的终端转到您的项目目录

执行ff命令:

php index.php cli create controller admin

这将在控制器中创建 admin.php,但是如果你想将它放在一个目录中,只需为目录添加另一个参数

php index.php cli create controller admin backend

这将再次创建这个文件 'controller/backend/admin.php'

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多