国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

路由&模塊化設(shè)計(jì)&命名空間

2019-11-09 20:27:04
字體:
供稿:網(wǎng)友

Thinkphp采用模塊化的架構(gòu)思想,可以支持多模塊應(yīng)用的創(chuàng)建,讓應(yīng)用的擴(kuò)展更加方便. 先簡(jiǎn)單說下路由規(guī)則:

什么是路由?

系統(tǒng)從url參數(shù)中分析當(dāng)前請(qǐng)求的分組(平臺(tái)),控制器和操作方法的過程就是路由. tp框架路由共有四種形式 - 基本get形式 http://網(wǎng)址/index.php?m=分組&c=控制器&a=操作方法 該方式是最底層的get形式、傳統(tǒng)的參數(shù)傳遞方式,不時(shí)尚、不安全。 - PATHINFO路徑形式(默認(rèn)方式) http://網(wǎng)址/index.php/分組/控制器/操作方法  比如:http://網(wǎng)址/index.php/Home/Index/advert - rewrite重寫形式(偽靜態(tài)技術(shù))省略index.php入口文件(URL模式不可用) http://網(wǎng)址/分組/控制器/操作方法 http://網(wǎng)址/Home/Index/index - 兼容形式 http://網(wǎng)址/index.php?s=/分組/控制器/操作方法 http://網(wǎng)址/index.php?s=/Home/Index/advert

注意不要忘了加接口文件

自動(dòng)生成模塊目錄

如果我們需要生成一個(gè)Admin模塊用于后臺(tái)應(yīng)用,在應(yīng)用入口文件中定義如下:

// 綁定Admin模塊到當(dāng)前入口文件define('BIND_MODULE','Admin');define('APP_PATH','./application/');require './ThinkPHP/ThinkPHP.php';/ /可不要

如果需要生成更多的控制器類,可以定義BUILD_CONTROLLER_LIST常量.

// 綁定Admin模塊到當(dāng)前入口文件define('BIND_MODULE','Admin');define('BUILD_CONTROLLER_LIST','Index,User,Menu');define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php';

注意:默認(rèn)生成的控制器類都是繼承Think/Controller,如果需要繼承其他的公共類需要另外調(diào)整。 如果在應(yīng)用的公共配置文件中設(shè)置關(guān)閉了 APP_USE_NAMESPACE的話,生成的控制器類則不會(huì)采用命名空間定義。

命名空間

什么是命名空間? 在php程序語言里邊,語法規(guī)則要求同名稱的函數(shù)、類名、常量在一個(gè)請(qǐng)求里邊不允許出現(xiàn)多次。如果有的應(yīng)用程序不得已必須出現(xiàn)多個(gè)同名的 函數(shù)、類名、常量,那么我們就可以把它們放到不同的空間里邊做請(qǐng)求。這個(gè)不同的空間就稱作“命名空間”。 命名空間 同一個(gè)請(qǐng)求里邊定義兩個(gè)同名的函數(shù)getInfo(),右圖由于有使用命名空間,使得程序可以正常執(zhí)行。 同名稱的兩個(gè)函數(shù)在同一個(gè)空間進(jìn)行訪問系統(tǒng)要報(bào)錯(cuò). 這里寫圖片描述 同名稱的兩個(gè)函數(shù)放到不同空間做訪問,就不會(huì)報(bào)錯(cuò) 這里寫圖片描述

使用命名空間 通過namespace關(guān)鍵字聲明命名空間。 namespace 空間名稱; (空間名稱 按照php正確的命名方式定義即可) 命名空間針對(duì) 函數(shù)、類名、const常量 三部分起作用,并統(tǒng)稱為“元素”。 常量的聲明:

define(名稱,值); //(在類外部聲明常量)與命名空間沒有關(guān)系//同名稱常量只能define一次const 名稱=值; //與命名空間有關(guān)系

① const可以在類的內(nèi)部聲明常量信息(類常量) ② const也可以在類外部聲明常量(正常常量) 使用命名空間的時(shí)候const可以放到類外部聲明常量。 同名稱的多個(gè)常量,可以分別定義到不同的“命名空間”里邊 const和define的區(qū)別: 前者針對(duì)命名空間發(fā)生影響,后者不發(fā)生影響。 const可以聲明多個(gè)同名稱的常量 define對(duì)同名稱常量只能聲明一個(gè) 空間元素的訪問(當(dāng)前空間、其他空間): 這里寫圖片描述 子級(jí)(多級(jí))空間 命名空間可以讓我們存放許多元素(函數(shù)、類、常量),有的時(shí)候元素比較多,為了管理方便,可以對(duì)元素進(jìn)行分門別類地存儲(chǔ)。也就是說命名空間可以設(shè)置為多級(jí)空間。多級(jí)空間的最后一級(jí)空間就稱為“子級(jí)空間” 多級(jí)空間的聲明及空間元素的訪問: 這里寫圖片描述 空間元素訪問的三種形式 ① 非限定名稱

echo Animal::$name; 就近訪問上邊與其挨著最近空間的Animal元素(類似php引入文件:include “common.php”; //相對(duì)路徑引入當(dāng)前目錄下的common.php文件)

② 限定名稱

echo beijing/Animal::$name; // 把當(dāng)前空間 和 beijing空間聯(lián)合獲得Animal元素(類似php引入文件:include “Common/Conf/config.php”; 相對(duì)路徑)

③ 完全限定名稱 echo /beijing/Animal::$name; //訪問beijing空間的Animal元素 (類似php引入文件:include “d:/web/1121/Conf/common.php”; 絕對(duì)路徑引入文件) 訪問空間元素的兩種方式: 這里寫圖片描述 限定名稱訪問元素: 這里寫圖片描述 限定名稱訪問元素的特殊情況,linken被巧合訪問到: 這里寫圖片描述 引入機(jī)制  命名空間可以聲明為多級(jí)空間,這個(gè)多級(jí)空間元素在其他空間內(nèi)部訪問的時(shí)候,不得已需要通過 完全限定名稱 方式,這個(gè)完全限定名稱不方便開發(fā)、維護(hù),為了降低代碼的復(fù)雜度,可以在當(dāng)前的空間把指定的空間給引入進(jìn)來,進(jìn)而可以方便地通過“限定名稱”的方便的形式使用其他空間的元素。 空間引入  use 空間; 這里寫圖片描述


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 镇康县| 呼伦贝尔市| 山西省| 娱乐| 大港区| 增城市| 墨江| 金门县| 宁陵县| 宁城县| 阿城市| 新昌县| 马鞍山市| 卓尼县| 诏安县| 高阳县| 榆中县| 集安市| 津南区| 虞城县| 留坝县| 淮北市| 武功县| 海安县| 东丽区| 扶余县| 望江县| 合肥市| 长兴县| 含山县| 辽阳县| 龙口市| 化州市| 山东省| 漯河市| 舒城县| 望谟县| 萍乡市| 永平县| 哈尔滨市| 乐东|