亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

開發(fā)自己的PHP框架需要那些知識儲備

原創(chuàng) 2016-10-29 16:14:23 623
摘要:很多人當聽到別人要開發(fā)框架的時候第一想法就是,又重復造輪子。其實造輪子的過程是一個快速積累知識的過程,能較快的發(fā)現(xiàn)自己的不足,以及學到一些自己未發(fā)現(xiàn)的知識點。所以建議在有一定PHP基礎的情況下,都去嘗試完成一個五臟俱全的基本框架吧。那么下面分享一下我之前造輪子的過程吧:1. 嘗試試用一個以上的框架,看完一遍使用文檔,目的在于了解它都有哪些功能,發(fā)現(xiàn)他的一些比較好的用法設計;2. 在看文檔的同時并行

很多人當聽到別人要開發(fā)框架的時候第一想法就是,又重復造輪子。

其實造輪子的過程是一個快速積累知識的過程,能較快的發(fā)現(xiàn)自己的不足,以及學到一些自己未發(fā)現(xiàn)的知識點。所以建議在有一定PHP基礎的情況下,都去嘗試完成一個五臟俱全的基本框架吧。

那么下面分享一下我之前造輪子的過程吧:

1. 嘗試試用一個以上的框架,看完一遍使用文檔,目的在于了解它都有哪些功能,發(fā)現(xiàn)他的一些比較好的用法設計;
2. 在看文檔的同時并行的思考這一部分的實現(xiàn)原理,如果想不明白則記下來或者上Github去看源碼(當然在不熟悉代碼結構的情況下可能很難找,所以我建議還是先記下來);
3. 看它的項目結構,同時思考這個結構的意義,比如現(xiàn)在大部分框架都把入口文件與靜態(tài)資源單獨放到public目錄里與其它目錄分開的原因是什么;
4. 嘗試看一遍源碼的運行流程,從入口到輸出,以及錯誤處理,模板引擎,配置等多個點了解一下(如果基礎允許的話,在這過程中解決上面記下來的疑點吧);
5. 開始自己實現(xiàn)吧,先寫一個大概的功能列表,把你要實現(xiàn)的點寫出來;
6. 然后思考如果組織代碼結構,在沒有太多實踐經(jīng)驗的情況下就按你最熟悉的方式組織吧(先實現(xiàn)再優(yōu)化);
7. 先跑通基本的hello world!;
8. 一點點加功能吧;
9. 發(fā)現(xiàn)不足,改進它;

這里在加功能的時候,盡量自己實現(xiàn)所有的能實現(xiàn)的組件,比如文件上傳,錯誤處理等等,畢竟目的是實習知識。
那么這過程其實走下來對于基礎稍差的人來說可能會特別不順利,那么沒關系,遇到哪一個點卡住,先解決你對這個點的問題,快速補充知識再回來繼續(xù)。

總結一些在造框架過程中通常會用到的一些點吧(以下排列沒有先后順序):

1. MVC
2. 自動加載: PHP: 自動加載類;
3. 錯誤處理:http://php.net/manual/zh/book.errorfunc.php;
4. PHP標準庫 (SPL)PHP: SPL - Manual;
5. 輸出緩沖控制: PHP: 輸出控制;
6. PHP 選項/信息:PHP:PHP 選項/信息;
7. 數(shù)據(jù)庫抽象層:PHP: 數(shù)據(jù)庫抽象層;
8. session拓展:PHP: Session 擴展;
9. 反射:http://php.net/manual/zh/book.reflection.php;
10. 類和對象:PHP: 類/對象;
11. 圖像處理和 GD:PHP: GD - Manual;
12. 郵件相關的SMTP;
13. 文件系統(tǒng):PHP: Filesystem;
14. 預定義變量:PHP: 預定義變量;
15. 字符串處理:PHP: 字符串 - Manual;
15. 正則表達式: http://php.net/manual/en/book.pcre.php;

基本的可能上面這些也足夠了,雖然上面給的每一個鏈接都有很多內(nèi)容,但是掌握常用的就好,可以結合搜索引擎去了解。

如果你想給框架加一些更巧妙的,或者更豐富的功能的話,這里還有一些知識點:

1. 常見的設計模式:工廠、單例,外觀、觀察者等;
2. 迭代器等預定義接口:PHP: 預定義接口;
3. 數(shù)據(jù)庫拓展:PHP: 數(shù)據(jù)庫擴展;
4. 國際化與字符編碼支持 PHP: 國際化與字符編碼支持;
5. 常用的緩存,Redis, Memcache,Apc等;
6. 隊列服務如ActiveMQ,Beanstalkd等;
7. 多數(shù)據(jù)庫支持如Mongo;
8. 事件與鉤子;

另外還有一種創(chuàng)建框架的方式,不過這里用“創(chuàng)建”已經(jīng)不太合適了,叫組合框架吧,那就是使用Composer基于開源組件拼裝一個屬于自己的框架。當然這里不建議新手這么干,這可能會讓你在很多基礎的東西上得不到鍛煉。如果個人技術能力已經(jīng)比較成熟了,目的在于快速開發(fā)項目的時候,用它絕對是利器。

最后推薦一些參考框架:

1. Slim Framework  - 微框架,一個框架基本功能都滿足了,很適合用于學習;
2. Silex - 微框架,基于Symfony2組件;
3. CodeIgniter  - 結構很清晰的PHP框架;

另外這里還有一些教程可以參考,不過建議先自己嘗試:

1. Write your own PHP MVC Framework (Part 1)
2. 使用PHP搭建自己的MVC框架


發(fā)布手記

熱門詞條