学習のために「非常に」単純な MVC フレームワークを作成していますが、インデックス ページ以外のページを表示するのに問題があります。ビューフォルダーには、私が試しているindex.phpとregister.phpの 2 つのファイルがあります。
私はさまざまな方法を試しましたが、頭に浮かびません。異なるコントローラー クラスを異なるファイルに配置し、おそらくローダー コントローラー ページに配置するのがおそらく最善であることはわかっていますが、私は PHP の初心者なので、できるだけシンプルにしたいと考えています...
どんな助けもありません!
すべてをバインドするために、ルート フォルダーにランディング ファイルとして index.php があります。
<?php
/* index.php
*
*/
require_once 'model/load.php';
require_once 'controller/main.php';
new mainController();
コントローラーフォルダーには、main.php というファイルがあります。
<?php
/* controller/main.php
*
*/
class mainController
{
public $load;
public function __construct()
{
$urlValues = $_SERVER['REQUEST_URI'];
$this->urlValues = $_GET;
//index page
if ($this->urlValues['controller'] == "") {
$indexPage = array("key" => "Hello");
$this->load = new load();
$this->load->view('index.php', $indexPage);
}
//register page
if ($this->urlValues['controller'] == "register.php") {
$registerPage = array("key" => "Register");
$this->load = new load();
$this->load->view('register.php', $registerPage);
}
}
}
そして、モデル フォルダーに load.php というファイルがあります。
<?php
/* model/load.php
*
*/
class load
{
/* This function takes parameter
* $file_name and match with file in views.
*/
function view($file_name, $data = null)
{
if (is_readable('views/' . $file_name)) {
if (is_array($data)) {
extract($data);
}
require 'views/' . $file_name;
} else {
echo $this->file;
die ('404 Not Found');
}
}
}