Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取要在简单MVC中加载的正确url/页面_Php_Url_Model View Controller_Url Routing - Fatal编程技术网

Php 获取要在简单MVC中加载的正确url/页面

Php 获取要在简单MVC中加载的正确url/页面,php,url,model-view-controller,url-routing,Php,Url,Model View Controller,Url Routing,为了学习,我正在制作一个“非常”简单的MVC框架,但是我很难让索引页面以外的其他页面显示出来。在视图文件夹中,我有两个文件,一个是我正在尝试的index.php,另一个是register.php 我已经尝试过各种方法,但我的头脑还是绕不过去。我知道最好是将不同的控制器类放在不同的文件中,或者放在一个加载器控制器页面中,但我是php的初学者,所以我想让它对我来说尽可能简单 欢迎任何帮助 我在根文件夹中有一个index.php作为登录文件,用于将所有内容绑定在一起: <?php /* inde

为了学习,我正在制作一个“非常”简单的MVC框架,但是我很难让索引页面以外的其他页面显示出来。在视图文件夹中,我有两个文件,一个是我正在尝试的index.php,另一个是register.php

我已经尝试过各种方法,但我的头脑还是绕不过去。我知道最好是将不同的控制器类放在不同的文件中,或者放在一个加载器控制器页面中,但我是php的初学者,所以我想让它对我来说尽可能简单

欢迎任何帮助

我在根文件夹中有一个index.php作为登录文件,用于将所有内容绑定在一起:

<?php
/* index.php
 * 
 */

require_once 'model/load.php';
require_once 'controller/main.php';

new mainController();

在mainController类中,您没有名为
urlValues
的属性,但可以使用它:
$this->urlValues=$\u GET。更重要的是,您有相同名称的局部变量,但不使用:
$urlValues=$\u SERVER['REQUEST\u URI']


您的register.php的URL是什么样子的?

您的问题是什么?
<?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);   
        } 

    }
}
<?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');
        }
    }

}