摘要:日期和時(shí)間使用類完成讀取設(shè)置比較和計(jì)算日期與時(shí)間。單元測(cè)試單元測(cè)試是從編寫開始,貫穿于整個(gè)開發(fā)周期的一種用于保證函數(shù)類和方法的行為與預(yù)期一致的編程方法。是應(yīng)用的單元測(cè)試框架的業(yè)界標(biāo)準(zhǔn),其他幾個(gè)可選框架是行為驅(qū)動(dòng)開發(fā)行為驅(qū)動(dòng)開發(fā)有兩種方式和。
《php之道》閱讀地址:http://wulijun.github.io/php-the-right-way/#code_style_guide
某天在搜藏夾里翻到這個(gè)地址,也想不起是什么時(shí)候搜藏起來(lái)的了。
對(duì)于現(xiàn)在的我欠缺的基礎(chǔ)很是有用,零零碎碎花了大概有3填時(shí)間把這篇文字看了個(gè)大概,的確當(dāng)?shù)钠餻hp之道的名字。
這本書對(duì)于php相關(guān)的東西基本上大都講到了,許多平時(shí)不曾注意的細(xì)節(jié)也有了一些描述,但畢竟不能算成書,很多細(xì)節(jié)點(diǎn)并沒(méi)有展開講,對(duì)于較為系統(tǒng)的了解php的知識(shí)還是一個(gè)不錯(cuò)的提綱,以此自己展開應(yīng)當(dāng)是個(gè)不錯(cuò)的選擇,稍后我會(huì)整理一份簡(jiǎn)單些的php學(xué)習(xí)提綱附在下面。
tips
php -S localhost:8000
這個(gè)可能很多人都不知道,很好用的說(shuō)
代碼風(fēng)格psr0 psr1 psr2 psr3 psr4 都需要時(shí)常溫習(xí)
E文:http://www.php-fig.org/psr/
中文:https://github.com/hfcorriez/fig-standards/tree/zh_CN/%E6%8E%A5%E5%8F%97
oop
不錯(cuò)的中文教程:http://blog.snsgou.com/post-41.html
函數(shù)式編程
此區(qū)塊暫不明朗,還木有找到合適的教程,后面填坑
魔術(shù)方法
官方:http://www.php.net/manual/zh/language.oop5.magic.php 足夠了
命名空間
這個(gè)我直接黏php之道的
命令行PHP社區(qū)的眾多開發(fā)者已經(jīng)開發(fā)了大量的代碼。這意味著一個(gè)函數(shù)庫(kù)中的PHP代碼可能使用了另外一個(gè)庫(kù)中相同的類名,如果它們共享一個(gè)命名空間,則會(huì)產(chǎn)生沖突導(dǎo)致異常。
命名空間解決了這個(gè)問(wèn)題。如PHP手冊(cè)里描述的那樣,命名空間類似于操作系統(tǒng)中的目錄,兩個(gè)同名文件可以共存于不同的目錄。同理,同名的PHP類可以在不同的PHP命名空間下共存,就這么簡(jiǎn)單。
因而把代碼放在自己的命名空間下就顯得非常必要,這樣其他人就可以放心的使用這些代碼,而無(wú)需擔(dān)心與其他函數(shù)庫(kù)的命名沖突。
[PSR-0] 里提供了命名空間的推薦使用方式, 它試圖提供一個(gè)標(biāo)準(zhǔn)的文件、類和命名空間的使用慣例,從而讓代碼做到即插即用。
2013年12月,PHP-FIG發(fā)布了新的自動(dòng)加載標(biāo)準(zhǔn):[PSR-4],將來(lái)可能會(huì)替換舊的PSR-0標(biāo)準(zhǔn)。PSR-4要求PHP5.3版本以上,而目前很多項(xiàng)目用的都是PHP5.2, 因此當(dāng)前兩個(gè)標(biāo)準(zhǔn)都可用,但是對(duì)于新應(yīng)用或者包的話,應(yīng)優(yōu)先考慮PSR-4.
psr0和psr4的介紹見 代碼風(fēng)格 中的鏈接
php -i
這是查看php信息的命令,類似phpinfo的作用,配合grep使用可以快速查看你所需要的配置
php -a
php shell 可以這么理解吧
調(diào)試xdebug 配合 ide 是目前開發(fā)的主要調(diào)試手段,沒(méi)事耍兩下
phpstorm + xdebug 配置教程 http://micate.me/phpstorm-xdebug.note
composer 缺點(diǎn)就是國(guó)內(nèi)網(wǎng)絡(luò)經(jīng)常連不上,線上慎重使用
找到composer還有國(guó)內(nèi)的源 https://pkg.phpcomposer.com/
pear 話說(shuō),我不了解。。。沒(méi)事看下,應(yīng)該會(huì)有些幫助
基礎(chǔ)知識(shí)這塊認(rèn)真看下,有些發(fā)現(xiàn)平時(shí)寫的實(shí)在是。。。
日期和時(shí)間設(shè)計(jì)模式PHP使用DateTime類完成讀取、設(shè)置、比較和計(jì)算日期與時(shí)間。雖然PHP中有很多日期和時(shí)間處理相關(guān)的函數(shù),但是DateTime類提供了 完善的面向?qū)ο蠼涌谕瓿筛黜?xiàng)常見操作,而且還能處理時(shí)區(qū),這里不作深入介紹。
這塊入門書籍 《大話設(shè)計(jì)模式》,我目前正在閱讀中看著不錯(cuò),很生動(dòng),后面最好再去看下《gof》,這個(gè)我還沒(méi)看,完成之后再做更新。
數(shù)據(jù)庫(kù)這里主要是講mysql,其他的以后用到再整理
關(guān)于mysql,暫時(shí)木有好的教程,待更新
mysql目前來(lái)說(shuō)主要使用的驅(qū)動(dòng)是pdo,php-mysql這個(gè)原生的驅(qū)動(dòng)在5.4以后已經(jīng)被標(biāo)記為不推薦使用了
話說(shuō)網(wǎng)上沒(méi)有找到比較好的教程,下面這個(gè)暫且用用,有好的換掉
http://www.phpv.net/html/1579.html
異常是大部分流行語(yǔ)言的標(biāo)準(zhǔn)特性,但是PHP開發(fā)者卻不太重視。其他語(yǔ)言如 Ruby極度倚賴異常,在任何錯(cuò)誤發(fā)生的時(shí)候,如HTTP請(qǐng)求失敗 、DB查詢錯(cuò)誤,甚至圖片資源未找到,都會(huì)拋出一個(gè)異常,以及時(shí)提示那里發(fā)生了一個(gè)錯(cuò)誤。
PHP則對(duì)此很寬松,如調(diào)用file_get_contents()失敗,只是返回FALSE并提示一個(gè)warning信息而已。很多老的PHP框架,如 CodeIgniter會(huì)返回false,然后在自己的日志里記錄一個(gè)消息,開發(fā)者需要使用如$this->upload->get_error()的方式來(lái)查看發(fā)生了什么 錯(cuò)誤。這么做需要你自己檢查是否有錯(cuò)誤,并需要根據(jù)不同類調(diào)用不同的方法來(lái)獲取錯(cuò)誤消息,而不能讓錯(cuò)誤明顯的顯示出來(lái)。
目前大部分的框架都會(huì)有一些自己的異常處理方式,使用的時(shí)候應(yīng)該先把框架的這個(gè)機(jī)制給搞明白。
安全web的安全問(wèn)題通常是相當(dāng)重要的,較為常見的有:sql注入、xss攻擊等等,下面是較為全面的列表
http://os.51cto.com/art/201204/328938.htm
測(cè)試
測(cè)試驅(qū)動(dòng)開發(fā)
測(cè)試驅(qū)動(dòng)開發(fā)(TDD)是以非常短的開發(fā)周期,不斷進(jìn)行迭代的軟件開發(fā)流程:首先開發(fā)者針對(duì)改進(jìn)或新功能編寫失敗的自動(dòng)化測(cè)試用例,然后編寫代碼使測(cè)試用例通過(guò), 最后重構(gòu)代碼,讓代碼滿足可接受的標(biāo)準(zhǔn)。Kent Beck,該技術(shù)的創(chuàng)建者或者說(shuō)重新發(fā)現(xiàn)者,在2003年聲明TDD鼓勵(lì)簡(jiǎn)單的設(shè)計(jì)和提振信心。
單元測(cè)試
單元測(cè)試是從編寫開始,貫穿于整個(gè)開發(fā)周期的一種用于保證函數(shù)、類和方法的行為與預(yù)期一致的編程方法。通過(guò)檢查各個(gè)函數(shù)和方法的輸入和輸出值,你可以保證它們 內(nèi)部邏輯已經(jīng)正確執(zhí)行;通過(guò)依賴注入、編寫mock類和stubs,你可以驗(yàn)證依賴是否已經(jīng)正確處理,提高測(cè)試覆蓋率。
[PHPUnit]是PHP應(yīng)用的單元測(cè)試框架的業(yè)界標(biāo)準(zhǔn),其他幾個(gè)可選框架是:
[atoum]
[Enhance PHP]
[PUnit]
[SimpleTest]
行為驅(qū)動(dòng)開發(fā)
行為驅(qū)動(dòng)開發(fā)(BDD)有兩種方式:SpecBDD和StoryBDD。SpecBDD關(guān)注代碼的技術(shù)行為,而StoryBDD關(guān)注業(yè)務(wù)、特性和交互,這兩種方式都有對(duì)應(yīng)的PHP框架。
框架大量的PHP開發(fā)者使用框架,而不是重復(fù)發(fā)明輪子來(lái)創(chuàng)建自己的Web應(yīng)用。框架抽象出底層通用的業(yè)務(wù)邏輯,給使用者了提供簡(jiǎn)單易用的接口。
PHP常用框架列表
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/20726.html
摘要:先說(shuō)一下面試時(shí)的心態(tài),剛?cè)腴T的程序員,技術(shù)實(shí)力不高,又大多不善言談,面試一旦遇到難題,很容易心態(tài)失衡驚慌失措語(yǔ)無(wú)倫次,最終丟掉了。其實(shí)大可不必,心態(tài)坦然,是面試必備的一點(diǎn)。 本書的 GitHub 地址:https://github.com/todayqq/PH... 作為一位程序員,面試過(guò)多次,也面試過(guò)很多人,最近又在找工作,總結(jié)一下面試經(jīng)驗(yàn)和面試題,希望可以幫到正在找工作的小伙伴們...
摘要:權(quán)限中心的依賴聲明聲明依賴關(guān)系檢查代碼規(guī)范聲明開發(fā)依賴命名空間檢查代碼規(guī)范,執(zhí)行單元測(cè)試。單元測(cè)試持續(xù)交付一切都如此的完美,沒(méi)有測(cè)試,又如何可以證明這件事情的完美,又如何可以保障交付的質(zhì)量。 序 權(quán)限管理是無(wú)線運(yùn)營(yíng)系統(tǒng)中的核心模塊,通過(guò)訪問(wèn)控制策略的配置,來(lái)約定人與資源的訪問(wèn)關(guān)系。 本文著重講解如何通過(guò)PHP來(lái)構(gòu)建一個(gè)靈活、通用、安全的權(quán)限管理系統(tǒng)。 關(guān)于權(quán)限 首先我們來(lái)聊聊權(quán)限。 權(quán)...
摘要:所以作為源數(shù)組,你可以將數(shù)組的值以引用傳遞方法傳入回調(diào)函數(shù),數(shù)組的鍵名直接傳入就好了數(shù)組連接操作在中合并數(shù)組的最佳方式是使用函數(shù)。為了實(shí)現(xiàn)從數(shù)組中刪除不在其他數(shù)組中的值譯注計(jì)算差值,使用。 本文首發(fā)于 PHP 數(shù)組使用之道,轉(zhuǎn)載請(qǐng)注明出處。 這個(gè)教程我將通過(guò)一些實(shí)用的實(shí)例和最佳實(shí)踐的方式列舉出 PHP 中常用的數(shù)組函數(shù)。每個(gè) PHP 工程師都應(yīng)該掌握它們的使用方法,以及如何通過(guò)組合使用...
摘要:框架的版本已經(jīng)發(fā)布,版本最低要求是,將會(huì)在今年早些時(shí)候推出正式版。閱讀的代碼,能學(xué)到很多東西,代碼寫的很優(yōu)雅,用到了很多版本的新特性。 yii框架的v-2.0-alpha版本已經(jīng)發(fā)布,PHP版本最低要求是PHP-5.4,將會(huì)在今年早些時(shí)候推出正式版。閱讀yii2的代碼,能學(xué)到很多東西,代碼寫的很優(yōu)雅,用到了很多php-5.4版本的新特性。 BaseYii這個(gè)類,在yii2框架中被稱作...
摘要:統(tǒng)一的編碼規(guī)范編碼規(guī)范往簡(jiǎn)單說(shuō)其實(shí)就是三個(gè)方面換行空格變量命名放在里面,還有一些附加的地方,比如關(guān)鍵字大小寫,語(yǔ)法糖的使用與等的問(wèn)題。這些都是規(guī)范代碼的重要手段。推廣給你的隊(duì)友團(tuán)隊(duì)項(xiàng)目中,隊(duì)友的配合對(duì)整個(gè)代碼的規(guī)范起著決定性的作用。 1. 統(tǒng)一的編碼規(guī)范 編碼規(guī)范往簡(jiǎn)單說(shuō)其實(shí)就是三個(gè)方面: 換行 空格 變量命名 放在 PHP 里面,還有一些附加的地方,比如關(guān)鍵字大小寫,語(yǔ)法糖的使用...
閱讀 2020·2021-10-09 09:41
閱讀 1596·2021-09-28 09:36
閱讀 1100·2021-09-26 09:55
閱讀 1285·2021-09-10 11:17
閱讀 1141·2021-09-02 09:56
閱讀 2755·2019-08-30 12:58
閱讀 2927·2019-08-29 13:03
閱讀 1847·2019-08-26 13:40