偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

PHP中的自定義路由使用小結(jié)

開發(fā) 后端
我手上有個(gè)用PHP寫的網(wǎng)站,類似于個(gè)人測(cè)試性質(zhì)的站點(diǎn),我獨(dú)立設(shè)計(jì),在這過程中犯了所有可能的設(shè)計(jì)和編程上的錯(cuò)誤,同時(shí)我也收獲了很多,這也促使 我去學(xué)習(xí)PHP和MySQL。每當(dāng)我學(xué)習(xí)新的技術(shù)或web實(shí)踐時(shí),都會(huì)想到我的網(wǎng)站會(huì)從中得益。正如你可以想象到的,它的可讀性不強(qiáng)。

簡(jiǎn)介

我手上有個(gè)用PHP寫的網(wǎng)站,類似于個(gè)人測(cè)試性質(zhì)的站點(diǎn),我獨(dú)立設(shè)計(jì),在這過程中犯了所有可能的設(shè)計(jì)和編程上的錯(cuò)誤,同時(shí)我也收獲了很多,這也促使 我去學(xué)習(xí)PHP和MySQL。每當(dāng)我學(xué)習(xí)新的技術(shù)或web實(shí)踐時(shí),都會(huì)想到我的網(wǎng)站會(huì)從中得益。正如你可以想象到的,它的可讀性不強(qiáng)。測(cè)試網(wǎng)站往往在代碼 可讀性和可維護(hù)性方面表現(xiàn)糟糕,尤其當(dāng)你僅僅因?yàn)槟承┍匾墓δ芏鴮W(xué)習(xí)一門編程語(yǔ)言時(shí),而這也正是我一直以來學(xué)習(xí)PHP的方式。

[[136295]]

自從了解了ASP.NET MVC,我便思考如何在這個(gè)網(wǎng)站上實(shí)踐這套MVC模式。我喜歡這整套概念的一切,尤其是路由。但我并不想為此而重構(gòu)整個(gè)網(wǎng)站的現(xiàn)有框架,擔(dān)心這樣一來,大 部分現(xiàn)有代碼將變成像是異物一樣,不受我的控制和理解。網(wǎng)站已經(jīng)有一個(gè)WordPress搭建的博客,通過修改模板讓它看起來就像是一個(gè)完整的站點(diǎn),好比 在一巨大的墻上畫涂鴉一樣,這簡(jiǎn)直是一團(tuán)糟。

然后呢?剛不久前,我學(xué)習(xí)了一些REST API的相關(guān)知識(shí),這是為日常工作所需而學(xué)習(xí)的。有沒有一個(gè)***的方式去學(xué)習(xí)這些呢?我知道有個(gè)網(wǎng)站會(huì)從中獲益。在網(wǎng)上閱讀了一些關(guān)于在PHP環(huán)境應(yīng)用 RESTful API的文章,我了解了.htaccess文件?,F(xiàn)在我知道怎樣在PHP中搭建路由,因此,也許能在測(cè)試網(wǎng)站實(shí)施自己設(shè)計(jì)的小型的、簡(jiǎn)單的MVC模型。

設(shè)想

在PHP中搭建自定義路由的關(guān)鍵在于增加一個(gè).htaccess文件,以下請(qǐng)看

具體實(shí)現(xiàn):

我在網(wǎng)站文件夾目錄中新增了一個(gè)”API”文件夾,在里面新建一個(gè).htaccess文件,內(nèi)容是我從Corey Maynard寫的一段文本中參考來的。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?request=$1 [QSA,NC,L]
</IfModule>

長(zhǎng)話短說,有了這個(gè)配置,所有以”www.yoursite.com/api/”開頭或指向不存在的文件或路徑的請(qǐng)求都會(huì)被重定向到 index.php文件。$1變量值表示請(qǐng)求的URL地址,”request”變量名也很好理解,用$_REQUEST[‘request’]命令就可輕 易獲取。

另外,index.php文件和.htaccess文件在同一訪問層級(jí)。

可能出現(xiàn)的問題?

事實(shí)上,你可能還沒啟用指定的module。

在WampServer環(huán)境下,我需要啟用相應(yīng)module來支持本機(jī)運(yùn)行。一種方法是點(diǎn)擊托盤圖標(biāo)進(jìn)入”Apache”目錄,在”Apache modules”列表中選中rewrite_module,然后重啟所有服務(wù)。另一種方法是編輯httpd.conf文件,取消下面這段配置的注釋

#LoadModule rewrite_module modules/mod_rewrite.so

我想接下來要做的事情之一就是給網(wǎng)站做幾個(gè)自測(cè)網(wǎng)頁(yè),好讓我確定網(wǎng)站的負(fù)責(zé)人沒有改變?nèi)魏螙|西。這聽起來可能有點(diǎn)偏執(zhí)和可笑,但又一次,我需要臨時(shí)增加 “set names latin2;”配置來檢視數(shù)據(jù)庫(kù)導(dǎo)入的數(shù)據(jù)。

如果想驗(yàn)證以上配置是否在服務(wù)器上啟用,你可以使用這段代碼:

echo in_array('mod_rewrite', apache_get_modules());

接下來呢?

至此我獲得一些重要的知識(shí),讓我可以為我的網(wǎng)站搭建新的MVC框架。使用新框架比使用現(xiàn)有解決方案更棒,很大程度上由于這讓我在應(yīng)用MVC模式的過程中獲得廣泛的知識(shí)。由于所有代碼都是我個(gè)人的工作量,也就沒有任何消耗性組件。

繼續(xù)為我的網(wǎng)站創(chuàng)建REST API。現(xiàn)在我才能實(shí)質(zhì)性地將數(shù)據(jù)庫(kù)邏輯從網(wǎng)頁(yè)界面中抽離出來。

有用的鏈接

如果你想知道我是怎樣找到解決方案,那下面是我從中獲得知識(shí)的網(wǎng)站 http://coreymaynard.com/blog/creating-a-restful-api-with-php/

 

譯文鏈接:http://www.codeceo.com/article/custom-routing-in-php.html
英文原文:Custom routing in PHP

責(zé)任編輯:王雪燕 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2017-08-03 17:00:54

Springmvc任務(wù)執(zhí)行器

2010-10-25 16:05:07

oracle自定義函數(shù)

2022-06-06 09:01:16

SwiftUI自定義導(dǎo)航

2009-12-03 10:49:32

PHP自定義異常處理器

2015-03-26 11:51:22

2021-11-23 15:06:42

Kubernetes 運(yùn)維開源

2010-05-11 13:16:21

Unix awk

2016-08-23 13:21:15

MVC路由視圖

2019-12-25 11:47:27

LinuxFVWM

2022-01-14 09:17:13

PythonAPISIX插件

2009-06-23 11:35:44

JSF的Naviati

2020-05-21 18:52:06

PHP框架CodeigniterWeb開發(fā)

2024-01-23 13:13:09

2009-07-31 15:42:38

自定義providerASP.NET2.0

2023-06-28 08:05:46

場(chǎng)景vue3自定義

2011-06-15 09:24:36

Qt Widget Model

2021-12-24 15:46:23

鴻蒙HarmonyOS應(yīng)用

2023-10-31 09:10:39

2020-09-04 13:30:43

Java自定義代碼

2015-02-12 15:33:43

微信SDK
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)