面向方面編程(AOP)對(duì)于PHP來說是一個(gè)新的概念?,F(xiàn)在PHP對(duì)于 AOP 并沒有官方支持,但有很多擴(kuò)展和庫實(shí)現(xiàn)了這個(gè)特性。本課中,我們將使用 Go! PHP library 來學(xué)習(xí) PHP 如何進(jìn)行 AOP 開發(fā),或者在需要的時(shí)候,可以回來看一眼。
10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有天涯免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。Aspect-Oriented programming is like a new gadget for geeks.
面向方面編程的思想在二十世紀(jì)90年代中期,于施樂帕洛阿爾托研究中心(PARC)成型。同很多有趣的新技術(shù)一樣,由于缺少明確的定義,起初 AOP 備受爭(zhēng)議。因此相關(guān)小組決定將未完成的想法公之于眾,以便接受廣大社區(qū)的反饋。關(guān)鍵問題在于“關(guān)注點(diǎn)分離(Separation of Concerns)”的概念。AOP 是一種可以分離關(guān)注的可行系方案。
AOP 于90年代末趨于成熟,標(biāo)識(shí)為施樂 AspectJ 的發(fā)布,IBM 緊隨其后,于2001年發(fā)布了 Hyper/J?,F(xiàn)在,AOP是一種對(duì)于常用編程語言來說都是一種成熟的技術(shù)。
AOP 的核心就是“方面”,但在我們定義「方面『aspect』」之前,我們需要先討論兩個(gè)術(shù)語;「切點(diǎn)『 point-cut』 」和「通知『advise』」。切點(diǎn)代表我們代碼中的一個(gè)時(shí)間點(diǎn),特指運(yùn)行我們代碼的某個(gè)時(shí)間。在切點(diǎn)運(yùn)行代碼被稱為通知,結(jié)合一個(gè)活多個(gè)切點(diǎn)及通知的即為方面。
通常,每個(gè)類都會(huì)有一個(gè)核心的行為或關(guān)注點(diǎn),但有時(shí),類可能存在次要的行為。例如,類可能會(huì)調(diào)用一個(gè)日志記錄器或是通知一個(gè)觀察員。因?yàn)轭愔械倪@些功能是次要的,其行為通常都是相同的。這種行為被稱為“交叉關(guān)注點(diǎn)”;使用 AOP 可以避免。
Chris Peters 已經(jīng)討論過在PHP中實(shí)現(xiàn) AOP 的Flow 框架。 Lithium 框架也提供了對(duì)AOP的實(shí)現(xiàn)。
另一個(gè)框架采用了不同的方法,創(chuàng)建了一個(gè) C/C++ 編寫的PHP擴(kuò)展,在PHP解釋器的層級(jí)上宣示著它的魔力。名為AOP PHP Extension,我會(huì)在后續(xù)文章中討論它。
但正如我之前所言,本文將檢閱Go! AOP-PHP 庫。
Go! 庫并未擴(kuò)展;它完全由PHP編寫,并為PHP5.4或更高版本使用。作為一個(gè)純PHP庫,它部署簡(jiǎn)易,即使是在不允許編譯安裝你自己的PHP擴(kuò)展的受限及共享主機(jī)環(huán)境,也可以輕易安裝。
Composer 是安裝 PHP 包的選方法。如果你沒有使用過 Composer,你可以在Go! GitHub repository下載。
首先,將下面幾行加入你的 composer.json 文件。
1 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。 網(wǎng)站欄目:你聽說過PHP的面向方面編程嗎?-創(chuàng)新互聯(lián) 文章地址:http://weahome.cn/article/edeig.html 其他資訊 |