0

学習のために「非常に」単純な MVC フレームワークを作成していますが、インデックス ページ以外のページを表示するのに問題があります。ビューフォルダーには、私が試しているindex.phpregister.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');
        }
    }

}
4

1 に答える 1

0

あなたの mainController クラスには、名前のプロパティはありませんがurlValues、それを使用します: $this->urlValues = $_GET;. さらに、使用しない同じ名前のローカル変数があります。$urlValues = $_SERVER['REQUEST_URI'];

register.php の URL はどのように見えますか?

于 2013-11-13T21:11:44.140 に答える