仿照laravel 的phpqrtisan写了个类似的php cli 功能

WBOY
Release: 2016-06-23 13:19:03
Original
965 people have browsed it

RT

GITHUB资源

PHP CLI 实现快速创建表 仿照ARTISAN 的QUICK

#!/usr/bin/env php -q      //声明PHP文件<?php/** * Created by PhpStorm. * User: gewenrui * Date: 16/1/11 * Time: 上午7:37 */require_once __DIR__.'/kakoi/Creator/Creator.class.php';$obj = new Creator();/*传入的参数    1,modle      创建MODEL    2,controller 创建CONTROLLER    3,migrate    同步数据库*/$input  = $_SERVER["argv"][1];@$status = $_SERVER["argv"][2];$obj->input($input,@$status);//echo __DIR__;//require_once
Copy after login

快速创建model层(php quick model Message)

<?php/** * Created by PhpStorm. * User: gewenrui * Date: 16/1/11 * Time: 上午9:03 */class model{    //内容    public function __construct($table)    {        $this->content =        $content =            "<?phpclass $table{      public function create(){            }        }";        $path = $this->create($table);        $this->write($path);    }    public function create($table)    {        $path = __DIR__ . '/Tables/' . $table . '.class.php';        //创建文件        if (!is_file($path)) {            touch($path, 0777, true);            return $path;        } else {            return $path;        }    }    //写入    public function write($path)    {        if (is_file($path)) {            $myfile = fopen($path, "w") or die("Unable to open file!");            fwrite($myfile, $this->content);        }    }}
Copy after login

数据库声明类型界面

<?php/** * Created by PhpStorm. * User: gewenrui * Date: 16/1/11 * Time: 上午11:12 */class Migration{    /*     *     * 设置类型     * */    public function String($data,$digit = 10)    {        $this->$data = "varchar($digit)";        return $this;    }    public function Int($data,$digit =10)    {        $this->$data = "int($digit)";        return $this;    }    public function date($data)    {        $this->$data = 'date';        return $this;    }    public function autoincrement($data)    {        $this->$data = $this->$data . '|primary key auto_increment';    }    public function index()    {        //return $this;    }    public function table($data)    {        $this->table = $data;    }}
Copy after login

创建model层(php quick model Message)

<?phprequire_once dirname(__DIR__) . '/Migration.class.php';class Message extends Migration{    public function create(Migration $migration)    {        $migration->table('Message');        $migration->Int('id',10)->autoincrement('id');        $migration->String('name',10);        $migration->String('password',10);        return $migration;    }}
Copy after login

执行页面

<?php/** * Created by PhpStorm. * User: gewenrui * Date: 16/1/11 * Time: 上午9:03 */require_once dirname(__DIR__) . '/DB/DB.class.php';class migrate extends \kakoi\DB{    public function __construct($table)    {        $data = $this->serach();        $value = require_once './Event/Config/Config.php';        static $db;        $db = new \kakoi\DB($value);        $this->load($data);    }    //search    public function serach()    {        $path = __DIR__ . '/Tables';        $dir = opendir($path);        global $value;        //扫描文件夹下的数据        while (($file = readdir($dir)) !== false) {            if ($file != '.' && $file != '..') {                $data = explode('.', $file);                $value .= $data[0] . '|';            }        }        return $value;        closedir($dir);    }    //数据处理    public function load($data)    {        $data = rtrim($data, '|');        $data = explode('|', $data);        foreach ($data as $value) {            require_once __DIR__ . '/Tables/' . $value . '.class.php';            $value = new $value();            $data = $value->create(new Migration());            $this->handle($data);        }    }    /*public function loop($key){        global $data;        if(strpos($key,'|')){            $value = explode('|',$key);        }    }*/    //数据处理*2    public function handle($data)    {        global $case;        //因为字段信息通过“xx|xx” 来传递 如果出现了 INT(10)|AUTO_INCREMENT 通过下面的方法来便利取出值          foreach ($data as $value => $key) {            if ($value != 'table') {                $count = substr_count($key, '|');                if ($count > 0) {                    $temp = explode('|', $key);                    $key = '';                    $length = count($temp);                    for ($i = 0; $i < $length; $i++) {                        $key .= $temp[$i] . '   ';                    }                }                $case .= $value . '   ' . $key . ',';            }        }        //去掉最后的逗号        $case = rtrim($case, ',') . ')';        $temp = "create table {$data->table}(";        $sql = $temp . $case;        $record = migrate::execute($sql);        if ($record == false) {            echo "{$data->table}创建失败了=";        } else {            echo "{$data->table}创建成功了=";        }        unset($case);        // echo $sql;    }}
Copy after login


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template