php框架的核心之一就是路由策略。任何好看的php框架url都是通過路由策略或者rewrite來實現的。
為什麼要寫一個php框架?
成立一個框架一般都是為了一些同類的問題提供一系列的解決方案,而不是為了簡單實現某個功能。
路由是php框架的基礎之一,那怎麼實現路由的分發呢?
這是一個簡單的實現思路:
首先在項目文件夾中建立 index.php 、C(文件夾,控制器),M(文件夾,模型),V(文件夾,視圖),至於Commom、Conf等文件夾,則是按需加載了。
入口文件:index.php
<?php /* * 框架統一入口 */ $mod = strtolower(isset($_GET['mod']) ? $_GET['mod'] : "index"); $act = strtolower(isset($_GET['act']) ? $_GET['act'] : "index"); require_once "C/{$mod}.mod.php"; $app = new $mod(); $app->$act();?>
簡單幾句,就可以實現路由的分發,至於對參數的驗證,可以做一個文件封裝即可,一般不在入口文件中實現。
下面來做一個簡單的實例:輸入http://localhost/mvcy
因為沒有指定mod 和act,則系統默認Index模塊和index方法:
index.mod.php :
<?php class index{ public function __construct(){} public function __destruct(){} public function index(){ echo "模塊未知!"; } }
浏覽器輸出:模塊未知
輸入http://localhost/mvcy/index.php?mod=test&act=getinfo
test.mod.php :
<?php class test{ function index(){ echo "請輸入操作"; } function getInfo(){ echo "測試成功!"; }}
浏覽器輸出:測試成功!
如果沒有提供act參數,那麼調用的就是test模塊的index函數了,輸出:請輸入操作
這就是簡單的php路由。