PSR-0符号化規範に基づいてPHP-MVCフレームワークを開発する(二)


一、composer依存パッケージ管理ツール.composer.json
{
    "name":"PHP-FRAME",
    "author":"Guoming.Zhang",
    "type":"FRAME",
    "version":"v1.0.0",
    "date":"2018-4-16 16:18:00",
    "keywords":["php","frame","PHP  ","MVC"],
    "description":"  PSR-0         PHP  ,       ,composer     、twig    、Medoo    、Whoops     ......",
    "require":{
        "twig/twig":"*",
        "catfan/medoo":"*",
        "filp/whoops":"*"
    }
}

プロジェクトルートディレクトリでコマンドを使用してcomposer installインストールtwig、medoo、whoopsプラグインを実行
二、入り口の書類.index.phpはvendor/autoloadを導入した.phpファイル、whoopsエラープロンプトプラグインを開く
pushHandler(new \Whoops\Handler\PrettyPageHandler);
    $whoops->register();
    ini_set('display_error','On');
} else {
    ini_set('display_error','Off');
}
spl_autoload_register('frame\App::autoload');
frame\App::run();
?>

三、データベースプロファイル.configs/Database.php
 'mysql',
    'database_name' => 'redis',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
    'port' => 3306,
    'prefix' => 'redis_',
);

四、データベース操作クラス.frame/Libs/Model.php

五、モデル層操作データベース.app/Models/Users.php
select($this->table,'*');
    }
    //    
    public function addOne(array $data)
    {
        return $this->insert($this->table,$data);
    }
    //    
    public function delOne(array $where)
    {
        return $this->delete($this->table,$where);
    }
    //    
    public function editOne(array $data, array $where)
    {
        return $this->update($this->table,$data,$where);
    }
}

六、ビューレイヤベースクラス.app/Controllers/Controller.php
 BASEPATH.'/storage/cache/' ) : [];
            $loader = new \Twig_Loader_Filesystem(APP.'/Views/');
            $twig = new \Twig_Environment($loader, $twigConfig);
            $template = $twig->loadTemplate($file.'.html');
            $template->display($data);
        } else {
            throw new \Exception($file."       ", 1);
        }
    }
}

七、コントローラはデータを操作してページに表示する.app/Controllers/Home/IndexController.php
model = new Users;
    }
    public function index()
    {
        //      
        $users = $this->model->lists();
        //    
        // $del = $this->model->delOne(['id'=>1]);
        //    
        // $update = $this->model->editOne(['user'=>'  '],['id'=>2]);
        
        //      
        $this->view('Home/index',['users'=>$users]);
    }
}

八、ビューファイル.app/Views/Home/index.html



    
    twig    


    {% for item in users %}
           :{{item.user}} 
: {{item.pass}}
{% endfor %}

medooデータベース操作クラスの公式ドキュメント:https://medoo.lvtao.net/doc.phptwigテンプレートエンジンの公式ドキュメント:https://www.kancloud.cn/yunye...githubアドレス:https://github.com/305515319/...