《php之道》閱讀地址:http://wulijun.github.io/php-the-right-way/#code_style_guidephp
某天在蒐藏夾裏翻到這個地址,也想不起是何時蒐藏起來的了。
對於如今的我欠缺的基礎非常有用,零零碎碎花了大概有3填時間把這篇文字看了個大概,的確當的起php之道的名字。
這本書對於php相關的東西基本上大都講到了,許多平時未曾注意的細節也有了一些描述,但畢竟不能算成書,不少細節點並無展開講,對於較爲系統的瞭解php的知識仍是一個不錯的提綱,以此本身展開應當是個不錯的選擇,稍後我會整理一份簡單些的php學習提綱附在下面。html
tipsmysql
php -S localhost:8000
這個可能不少人都不知道,很好用的說linux
psr0 psr1 psr2 psr3 psr4 都須要時常溫習
E文:http://www.php-fig.org/psr/
中文:https://github.com/hfcorriez/fig-standards/tree/zh_CN/%E6%8E%A5%E5%8F%97git
oop
不錯的中文教程:http://blog.snsgou.com/post-41.htmlgithub
函數式編程
此區塊暫不明朗,還木有找到合適的教程,後面填坑web
魔術方法
官方:http://www.php.net/manual/zh/language.oop5.magic.php 足夠了sql
命名空間
這個我直接黏php之道的shell
PHP社區的衆多開發者已經開發了大量的代碼。這意味着一個函數庫中的PHP代碼可能使用了另一個庫中相同的類名,若是它們共享一個命名空間,則會產生衝突致使異常。
命名空間解決了這個問題。如PHP手冊裏描述的那樣,命名空間相似於操做系統中的目錄,兩個同名文件能夠共存於不一樣的目錄。同理,同名的PHP類能夠在不一樣的PHP命名空間下共存,就這麼簡單。
於是把代碼放在本身的命名空間下就顯得很是必要,這樣其餘人就能夠放心的使用這些代碼,而無需擔憂與其餘函數庫的命名衝突。
[PSR-0] 裏提供了命名空間的推薦使用方式, 它試圖提供一個標準的文件、類和命名空間的使用慣例,從而讓代碼作到即插即用。
2013年12月,PHP-FIG發佈了新的自動加載標準:[PSR-4],未來可能會替換舊的PSR-0標準。PSR-4要求PHP5.3版本以上,而目前不少項目用的都是PHP5.2, 所以當前兩個標準均可用,可是對於新應用或者包的話,應優先考慮PSR-4.
psr0和psr4的介紹見 代碼風格 中的連接數據庫
php -i
這是查看php信息的命令,相似phpinfo的做用,配合grep使用能夠快速查看你所須要的配置
php -a
php shell 能夠這麼理解吧
xdebug 配合 ide 是目前開發的主要調試手段,沒事耍兩下
phpstorm + xdebug 配置教程 http://micate.me/phpstorm-xdebug.note
composer 缺點就是國內網絡常常連不上,線上慎重使用
找到composer還有國內的源 https://pkg.phpcomposer.com/
pear 話說,我不瞭解。。。沒事看下,應該會有些幫助
這塊認真看下,有些發現平時寫的實在是。。。
PHP使用DateTime類完成讀取、設置、比較和計算日期與時間。雖然PHP中有不少日期和時間處理相關的函數,可是DateTime類提供了 完善的面向對象接口完成各項常見操做,並且還能處理時區,這裏不做深刻介紹。
這塊入門書籍 《大話設計模式》,我目前正在閱讀中看着不錯,很生動,後面最好再去看下《gof》,這個我還沒看,完成以後再作更新。
這裏主要是講mysql,其餘的之後用到再整理
關於mysql,暫時木有好的教程,待更新
mysql目前來講主要使用的驅動是pdo,php-mysql這個原生的驅動在5.4之後已經被標記爲不推薦使用了
話說網上沒有找到比較好的教程,下面這個暫且用用,有好的換掉
http://www.phpv.net/html/1579.html
異常是大部分流行語言的標準特性,可是PHP開發者卻不過重視。其餘語言如 Ruby極度倚賴異常,在任何錯誤發生的時候,如HTTP請求失敗 、DB查詢錯誤,甚至圖片資源未找到,都會拋出一個異常,以及時提示那裏發生了一個錯誤。
PHP則對此很寬鬆,如調用file_get_contents()
失敗,只是返回FALSE
並提示一個warning信息而已。不少老的PHP框架,如 CodeIgniter會返回false,而後在本身的日誌裏記錄一個消息,開發者須要使用如$this->upload->get_error()
的方式來查看發生了什麼 錯誤。這麼作須要你本身檢查是否有錯誤,並須要根據不一樣類調用不一樣的方法來獲取錯誤消息,而不能讓錯誤明顯的顯示出來。
目前大部分的框架都會有一些本身的異常處理方式,使用的時候應該先把框架的這個機制給搞明白。
web的安全問題一般是至關重要的,較爲常見的有:sql注入、xss攻擊等等,下面是較爲全面的列表
http://os.51cto.com/art/201204/328938.htm
測試
測試驅動開發
測試驅動開發(TDD)是以很是短的開發週期,不斷進行迭代的軟件開發流程:首先開發者針對改進或新功能編寫失敗的自動化測試用例,而後編寫代碼使測試用例經過, 最後重構代碼,讓代碼知足可接受的標準。Kent Beck,該技術的建立者或者說從新發現者,在2003年聲明TDD鼓勵簡單的設計和提振信心。
單元測試
單元測試是從編寫開始,貫穿於整個開發週期的一種用於保證函數、類和方法的行爲與預期一致的編程方法。經過檢查各個函數和方法的輸入和輸出值,你能夠保證它們 內部邏輯已經正確執行;經過依賴注入、編寫mock類和stubs,你能夠驗證依賴是否已經正確處理,提升測試覆蓋率。
[PHPUnit]是PHP應用的單元測試框架的業界標準,其餘幾個可選框架是:
行爲驅動開發(BDD)有兩種方式:SpecBDD和StoryBDD。SpecBDD關注代碼的技術行爲,而StoryBDD關注業務、特性和交互,這兩種方式都有對應的PHP框架。
大量的PHP開發者使用框架,而不是重複發明輪子來建立本身的Web應用。框架抽象出底層通用的業務邏輯,給使用者了提供簡單易用的接口。