《編寫PHP框架需要知道的一》要點(diǎn):
本文介紹了編寫PHP框架需要知道的一,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
最近跟一位兄弟連的講師朋友討論了一些關(guān)于php的問(wèn)題,其中有一項(xiàng)我感覺(jué)需要寫出來(lái)讓大家知道,這就是php框架所需要學(xué)會(huì)的那些知識(shí)!因?yàn)槲遗c這位兄弟連的講師認(rèn)為這是php中很重要的部分!如果沒(méi)用過(guò)框架,討論每一個(gè)框架的內(nèi)容都沒(méi)有可討論性,想自己寫個(gè)框架涉及到的內(nèi)容很多,個(gè)人覺(jué)得自己寫一個(gè)框架對(duì)自己的邏輯思維,開(kāi)發(fā)架構(gòu)甚至這門語(yǔ)言都會(huì)有質(zhì)的提升.可以參照其他框架的源代碼,僅僅是看他們的思路,去粗取精 .
簡(jiǎn)單的說(shuō),使用知名的產(chǎn)品,一般都是忙于實(shí)現(xiàn),缺乏宏觀意識(shí),由此說(shuō)來(lái)開(kāi)發(fā)一個(gè)框架也是很正常的.也可以簡(jiǎn)單的路由分發(fā),mvc分層.基本的架子搭起來(lái)后,逐步完善.在工作中,碰到只需要自己一個(gè)人來(lái)完成的一次性小項(xiàng)目,就可以試試自己的框架了.建議找?guī)讉€(gè)簡(jiǎn)單的框架看看.
別太早深入細(xì)節(jié),類庫(kù)、插件這些都是浮云,合理的架構(gòu)規(guī)范最重要.要讓大象跳舞,在功能強(qiáng)大的前提下,盡量的輕,別動(dòng)不動(dòng)引用一堆類,一堆配置文件.很多框架只能說(shuō)是個(gè)類庫(kù)其實(shí)很簡(jiǎn)單的東西.
首先確定你掌握了以下知識(shí):
1.通過(guò)url傳遞和接受參數(shù)處理2.知道include的含義3.會(huì)echo和定義函數(shù).
另外需要了解的知識(shí)有:
1 路由解析2 路由分配3 IoC4 數(shù)據(jù)庫(kù)封裝5 cache封裝6 模版解析 文件cache
7 平安 xss sql注入8 http 操作9 圖片操作 每一塊都會(huì)展開(kāi)很多的知識(shí)點(diǎn).
很多人當(dāng)聽(tīng)到別人要開(kāi)發(fā)框架的時(shí)候第一想法就是,又重復(fù)造輪子.其實(shí)造輪子的過(guò)程是一個(gè)快速積累知識(shí)的過(guò)程,能較快的發(fā)現(xiàn)自己的不足,以及學(xué)到一些自己未發(fā)現(xiàn)的知識(shí)點(diǎn).所以建議在有一定PHP基礎(chǔ)的情況下,都去嘗試完成一個(gè)五臟俱全的基本框架吧. 簡(jiǎn)單闡述造輪子的過(guò)程:
1. 嘗試試用一個(gè)以上的框架,看完一遍使用文檔,目的在于了解它都有哪些功能,發(fā)現(xiàn)他的一些比較好的用法設(shè)計(jì);
2. 在看文檔的同時(shí)并行的思考這一部分的實(shí)現(xiàn)原理,如果想不明白則記下來(lái)或者上Github去看源碼(當(dāng)然在不熟悉代碼結(jié)構(gòu)的情況下可能很難找,所以我建議還是先記下來(lái));
3. 看它的項(xiàng)目結(jié)構(gòu),同時(shí)思考這個(gè)結(jié)構(gòu)的意義,比如現(xiàn)在大部分框架都把入口文件與靜態(tài)資源單獨(dú)放到public目錄里與其它目錄分開(kāi)的原因是什么;
4. 嘗試看一遍源碼的運(yùn)行流程,從入口到輸出,以及錯(cuò)誤處理,模板引擎,配置等多個(gè)點(diǎn)了解一下(如果基礎(chǔ)允許的話,在這過(guò)程中解決上面記下來(lái)的疑點(diǎn)吧);
5. 開(kāi)始自己實(shí)現(xiàn)吧,先寫一個(gè)大概的功能列表,把你要實(shí)現(xiàn)的點(diǎn)寫出來(lái);
6. 然后思考如果組織代碼結(jié)構(gòu),在沒(méi)有太多實(shí)踐經(jīng)驗(yàn)的情況下就按你最熟悉的方式組織吧(先實(shí)現(xiàn)再優(yōu)化);
7. 先跑通基本的hello world!;
8. 一點(diǎn)點(diǎn)加功能;
9. 發(fā)現(xiàn)不足,改進(jìn)并優(yōu)化它;
這里在加功能的時(shí)候,盡量自己實(shí)現(xiàn)所有的能實(shí)現(xiàn)的組件,比如文件上傳,錯(cuò)誤處理等等,畢竟目的是實(shí)習(xí)知識(shí).那么這過(guò)程其實(shí)走下來(lái)對(duì)于基礎(chǔ)稍差的人來(lái)說(shuō)可能會(huì)特別不順利,那么沒(méi)關(guān)系,遇到哪一個(gè)點(diǎn)卡住,先解決你對(duì)這個(gè)點(diǎn)的問(wèn)題,快速補(bǔ)充知識(shí)再回來(lái)繼續(xù).
本文為了符合頒發(fā)的字?jǐn)?shù)要求,所以將文章分為了兩個(gè)部分,你剛剛看到的這一篇是對(duì)老手與新手通用的創(chuàng)建框架的方式的一部分,剩下的部分與這位兄弟連的講師還提到的另外的一種創(chuàng)建方式,我們將在本文的下半部分給大家介紹,希望大家繼續(xù)關(guān)注.如果你沒(méi)有用過(guò)框架,那我建議你跟這位講師聯(lián)系去他們兄弟連教育學(xué)習(xí)一下去吧!畢竟這個(gè)東西,說(shuō)不準(zhǔn)哪天就用到了呢!
維易PHP培訓(xùn)學(xué)院每天發(fā)布《編寫PHP框架需要知道的一》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9103.html