PHP從零開(kāi)始打造自己的MVC框架之路由類(lèi)實(shí)現(xiàn)方法分析
本文實(shí)例講述了PHP從零開(kāi)始打造自己的MVC框架之路由類(lèi)實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
在core目錄下,新建一個(gè)名為lib的子目錄,然后把我們前面寫(xiě)個(gè)route.php這個(gè)文件移動(dòng)到這個(gè)目錄下。

因?yàn)閞oute類(lèi)文件路徑修改,所以在實(shí)例化的時(shí)候:
new \core\lib\route();
然后我們來(lái)完善route.php:
<?php
namespace core\lib;
class Route
{
public $controller; // 控制器
public $action; // 方法(動(dòng)作)
public function __construct()
{
// xxx.com/index.php/index/index
// xxx.com/index.php/index
/*
* 1.隱藏index.php
* 2.獲取URL 參數(shù)部分
* 3.返回對(duì)應(yīng)控制器和方法
* */
if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '/'){
// 處理成這種格式:index/index
$path = $_SERVER['REQUEST_URI'];
$pathArr = explode('/',trim($path,'/'));
if(isset($pathArr[0])){
$this->controller = $pathArr[0];
}
unset($pathArr[0]);
if(isset($pathArr[1])){
$this->action = $pathArr[1];
unset($pathArr[1]);
}else{
$this->action = 'index';
}
// url多余部分(參數(shù)部分)轉(zhuǎn)換成 GET
// id/1/str/2
$count = count($pathArr) + 2;
$i = 2;
while($i < $count){
if(isset($pathArr[$i + 1])){
$_GET[$pathArr[$i]] == $pathArr[$i + 1];
}
$i = $i + 2;
}
p($_GET); // 打印GET
}else{
$this->controller = 'index'; // 默認(rèn)控制器
$this->action = 'index'; // 默認(rèn)方法
}
}
}
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP從零開(kāi)始打造自己的MVC框架之類(lèi)的自動(dòng)加載實(shí)現(xiàn)方法詳解
- PHP命名空間和自動(dòng)加載類(lèi)
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類(lèi)文件,命名空間
- PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類(lèi)自動(dòng)加載功能
- PHP命名空間與自動(dòng)加載類(lèi)詳解
- 解析php類(lèi)的注冊(cè)與自動(dòng)加載
- php類(lèi)自動(dòng)加載器實(shí)現(xiàn)方法
- PHP類(lèi)的自動(dòng)加載機(jī)制實(shí)現(xiàn)方法分析
- php項(xiàng)目中類(lèi)的自動(dòng)加載實(shí)例講解
- PHP MVC框架中類(lèi)的自動(dòng)加載機(jī)制實(shí)例分析
相關(guān)文章
PHP解析xml格式數(shù)據(jù)工具類(lèi)示例
這篇文章主要介紹了PHP解析xml格式數(shù)據(jù)工具類(lèi),涉及php針對(duì)xml格式數(shù)據(jù)節(jié)點(diǎn)添加、獲取、解析等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
php ci 獲取表單中多個(gè)同名input元素值的代碼
這篇文章主要介紹了php ci 獲取表單中多個(gè)同名input元素值的代碼,需要的朋友可以參考下2016-03-03
set_include_path和get_include_path使用及注意事項(xiàng)
set_include_path 設(shè)置默認(rèn)包含路徑,本文將介紹下其的使用方法,及注意事項(xiàng),感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)php有所幫助2013-02-02
php抽象方法和普通方法的區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于php 抽象方法和普通方法的區(qū)別的相關(guān)文章,有需要的朋友們可以學(xué)習(xí)下。2019-10-10
無(wú)JS,完全php面向過(guò)程數(shù)據(jù)分頁(yè)實(shí)現(xiàn)代碼
無(wú)JS,完全php面向過(guò)程數(shù)據(jù)分頁(yè)實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-08-08

