PSR-0符号化規範に基づいてPHP-MVCフレームワークを開発する(二)
一、composer依存パッケージ管理ツール.composer.json
プロジェクトルートディレクトリでコマンドを使用してcomposer installインストールtwig、medoo、whoopsプラグインを実行
二、入り口の書類.index.phpはvendor/autoloadを導入した.phpファイル、whoopsエラープロンプトプラグインを開く
三、データベースプロファイル.configs/Database.php
四、データベース操作クラス.frame/Libs/Model.php
五、モデル層操作データベース.app/Models/Users.php
六、ビューレイヤベースクラス.app/Controllers/Controller.php
七、コントローラはデータを操作してページに表示する.app/Controllers/Home/IndexController.php
八、ビューファイル.app/Views/Home/index.html
medooデータベース操作クラスの公式ドキュメント:https://medoo.lvtao.net/doc.phptwigテンプレートエンジンの公式ドキュメント:https://www.kancloud.cn/yunye...githubアドレス:https://github.com/305515319/...
{
"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/...