🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#4.URL路由之pathinfo路由 我们常见pathinfo地址如下: ```cpp localhost/php_mvc/index.php?controller=home&method=index ``` 这个路由地址,是运行前台的index.php入口,并且传递了两个参数controller和method controller表示执行哪个控制器,method表示执行哪个方法。上面这条url就是要执行home控制器的index方法。 我们现在就要实现在前台index.php接受这两个参数,当没有这两个参数时,默认执行home控制器中的index方法。然后引入相应的类,加载指定控制器中的指定方法,实例化控制器类,调用控制器中的方法。 ```cpp |-index.php 项目前台入口文件,单一入口 <?php /** * Created by PhpStorm. * User: find35.com * Date: 15/12/24 * Time: 下午5:15 */ echo "<meta charset='utf-8'>"; require_once 'app/controllers/Home.class.php'; require_once 'app/controllers/Test.class.php'; //接受两个参数 controller控制器名称 method控制器中的方法 $controller = isset($_GET['controller']) ? $_GET['controller'] : 'home'; $method = isset($_GET['method']) ? $_GET['method'] : 'index'; //加载指定控制器中的制定方法 //实例化控制器类 $c = new $controller; //调用控制器中的方法 $c->$method(); ``` ```cpp |-app 前台 | |-controllers 存放所有的控制器目录 | |-Home.class.php <?php /** * Created by PhpStorm. * User: find35.com * Date: 15/12/24 * Time: 下午5:44 */ class Home { public function index(){ echo "这里是home控制器里的index方"; } } ``` ```cpp |-app 前台 | |-controllers 存放所有的控制器目录 | |-Test.class.php <?php /** * Created by PhpStorm. * User: find35.com * Date: 15/12/24 * Time: 下午5:44 */ class Test { public function index(){ echo "这里是test控制器的index方法"; } } ``` 下面的前两个url在浏览器中应该是一样的结果 ```cpp localhost/php_mvc/index.php localhost/php_mvc/index.php?controller=home&method=index localhost/php_mvc/index.php?controller=test&method=index ```