久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

PHP如何實現(xiàn)路由Route功能?

對于由原生PHP寫成的獨立PHP框架,利用單一入口文件實現(xiàn)路徑的訪問。這時我們會遇到的首要問題是:文件的相互包含,其次就是路由分配。當(dāng)我們不利用成熟的PHP框架進行web開發(fā)時,我們就會發(fā)現(xiàn)上述兩個問題會是很困擾我們的問題所在。

創(chuàng)新互聯(lián)建站長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鐘祥企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,鐘祥網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

問題解決方案:

1、文件包含

php的文件包含有兩種方式:require和include,兩個方法的區(qū)別在于利用require包含文件當(dāng)出錯時,會報出嚴重錯誤,同時PHP腳本會停止運行;而利用include包含文件出錯時,會有警告,但PHP腳本仍然會繼續(xù)向下執(zhí)行。同時兩個方法都包含對應(yīng)的xxx_once方法,可以避免”declare class”的問題。所以一般使用文件包含的時候我們盡量使用include_once包含文件。

同時在關(guān)于文件包含的路徑問題上,我們可以利用設(shè)置全局變量的方式,依托入口文件的絕對路徑,去尋找其他路徑文件。修改php.ini中的inclue_path路徑當(dāng)然也是另一種方式,利用require和include包含文件,假如是相對路徑的方式,首先會根據(jù)php.ini配置文件中的include_path的設(shè)置尋找。

2、路由分配

基于php的路由分配,實質(zhì)上來說就是利用url中的path去匹配對應(yīng)的控制類,同時調(diào)用其中的方法進行相關(guān)操作的處理。

一言不合上代碼:

<?php
/**
 * Author:helen
 * CreateTime: 2016/07/27 10:26
 * Description:
 */
// 權(quán)限控制
include_once './auth.php';
// 應(yīng)用入口文件
date_default_timezone_set("Asia/Shanghai");
header('Content-type: text/html;charset=utf-8');
// 項目根路徑
define('BASEPATH', dirname(__FILE__));
// 調(diào)試模式
define('APP_DEBUG', True);
// 引入配置文件
include_once BASEPATH . '/config/config.php';
// 路由控制
$router = include_once BASEPATH . '/config/router.php';
if ($_SERVER['HTTP_HOST'] !== 'xxx.com') {
    var_dump('當(dāng)前host不被允許');
} else {
    $request_path = str_replace('/index.php', '', $_SERVER['PHP_SELF']);
    $request_query = getCurrentQuery();
    if (array_key_exists($request_path, $router)) {
        $module_file = BASEPATH . $router[$request_path]['file_name'];
        $class_name = $router[$request_path]['class_name'];
        $method_name = $router[$request_path]['method_name'];
        if (file_exists($module_file)) {
            include $module_file;
            $obj_module = new $class_name();
            if (!method_exists($obj_module, $method_name)) {
                die("要調(diào)用的方法不存在");
            } else {
                if (is_callable(array($obj_module, $method_name))) {
                    $obj_module->$method_name($request_query, $_POST);
                }
            }
        } else {
            die("定義的模塊不存在");
        }
    } else {
        echo '頁面不存在';
    }
}

利用上述方式就可實現(xiàn)基本的PHP框架的路由分配。

以上就是PHP簡單實現(xiàn)路由Route功能的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

新聞標(biāo)題:PHP如何實現(xiàn)路由Route功能?
當(dāng)前地址:http://sd-ha.com/article36/gcjisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、微信公眾號、電子商務(wù)、定制網(wǎng)站、品牌網(wǎng)站制作、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司