PHP的5種最佳實(shí)踐

在WEB開發(fā)世界里,PHP是最流行的語言之一,從PHP里,你能夠很容易的找到你所需的腳本,遺憾的是,很少人會(huì)去用“最佳做法”去寫一個(gè)PHP程序。這里我們向大家介紹PHP的5種最佳實(shí)踐,當(dāng)然,每一種都是經(jīng)過大師們證明而得出的。

1.在合適的時(shí)候使用PHP–RasmusLerdorf

沒有誰比PHP的創(chuàng)建者RasmusLerdorf明白PHP用在什么地方是更合理的,他于1995年發(fā)布了PHP這門語言,從那時(shí)起,PHP就像燎原之火,燒遍了整個(gè)開發(fā)陣營(yíng),改變了互聯(lián)網(wǎng)的世界。可是,Rasmus并不是因此而創(chuàng)建PHP的。PHP是為了解決WEB開發(fā)者的實(shí)際問題而誕生的。

和許多開源項(xiàng)目一樣,PHP變得流行,流行的動(dòng)機(jī)并不能用正常的哲學(xué)來進(jìn)行解釋,甚至流行得有些孤芳自賞。它完全可以作為一個(gè)案例,一個(gè)解決各種Web問題的工具需求所引起的案例,因此當(dāng)PHP剛出現(xiàn)的時(shí)候,這種工具需求全部聚焦到PHP的身上。

但是,你不能奢望PHP可以解決所有問題。Lerdorf是第一個(gè)承認(rèn)PHP只是一種工具的人,并且PHP也有很多力所不能及的情況。

根據(jù)工作的不同來選擇合適的工具。我跑了很多家公司,為了說服他們部署和使用PHP,但是這并不意味著PHP對(duì)所有問題都適用。它只是可以一個(gè)解決大部分問題的front-end腳步語言。

作為一個(gè)web開發(fā)者,嘗試用PHP解決所有問題是不科學(xué)的,同時(shí)也會(huì)浪費(fèi)你的時(shí)間。當(dāng)PHP玩不轉(zhuǎn)的時(shí)候,不要猶豫,試用一下其他的語言吧。

2.使用多表存儲(chǔ)提高規(guī)模伸縮性–MattMullenweg

沒有人愿意質(zhì)疑MattMullenweg在PHP方面的權(quán)威性,他開發(fā)了這個(gè)星球上最流行的blog系統(tǒng),(依靠一個(gè)強(qiáng)大的社區(qū)力量支持):WordPress.創(chuàng)建Wordpress以后,Matt和他的團(tuán)隊(duì)啟動(dòng)了WordPress.com平臺(tái),一個(gè)基于WordPressMU的免費(fèi)blog站點(diǎn)?,F(xiàn)在,Wordpress.com已經(jīng)擁有大約400萬用戶,這些用戶每天提供超過140,000篇的日志。

如果有人知道如何讓網(wǎng)站的規(guī)模伸縮自如,這個(gè)人一定是MattMullenweg。2006年的時(shí)候Matt對(duì)Wordpress的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了前瞻性的改進(jìn),并且解釋了為什么WordpressMU對(duì)每個(gè)blog使用獨(dú)立的MYSQL表格,而不是把所有的blog數(shù)據(jù)都塞進(jìn)一個(gè)巨大的表格。

我們測(cè)試過這個(gè)方法,但是發(fā)現(xiàn)如果要擴(kuò)展它的伸縮性,代價(jià)太高。如果用一個(gè)整體的數(shù)據(jù)結(jié)構(gòu),在大流量面前,你將會(huì)面臨服務(wù)器硬件的問題。在MU里面。用戶們都被分布到獨(dú)立的表格當(dāng)中,并且可以輕易地組織起來。舉個(gè)例子,WordPress.com把用戶的數(shù)據(jù)分散存儲(chǔ)到4096個(gè)數(shù)據(jù)庫中,這些數(shù)據(jù)庫可以分散大規(guī)模的數(shù)據(jù)訪問,實(shí)現(xiàn)流量和壓力分流。

數(shù)據(jù)表的可遷移性讓代碼(blog)可以運(yùn)行得更快,并且讓系統(tǒng)具備更強(qiáng)的伸縮性。依靠強(qiáng)大的緩存策略和靈活的數(shù)據(jù)庫運(yùn)用策略,Matt向人們展示了時(shí)下最流行的Facebook和Wordpress.com都可以在PHP下穩(wěn)定運(yùn)行,并且處理驚人的訪問量。

3.千萬不要相信用戶–DaveChild

DaveChild是AddedBytes(previouslyilovejackdaniels.com)網(wǎng)站的核心人物,這個(gè)網(wǎng)站以他出色的《cheatsheetsformanyprogramminglanguages》而聞名。Dave為很多英國(guó)的公司服務(wù),并且已經(jīng)在編程世界里樹立起相當(dāng)?shù)臋?quán)威。

Dave為PHP開發(fā)者提供了很多深謀遠(yuǎn)慮的建議,并總結(jié)成了《writingsecurecodeinPHP》:千萬不要相信你的用戶,他們甚至可能會(huì)傷害你。

有一條web開發(fā)的基本原則,我重復(fù)多少遍都覺得不夠,那就是:千萬不要相信你的用戶,同時(shí)要假設(shè)你網(wǎng)站中的每個(gè)數(shù)據(jù)單元都是從用戶那里收集來的惡意代碼。很多時(shí)候,你必須用JAVAscript在客戶端檢驗(yàn)表單提交過來的內(nèi)容,如果你習(xí)慣了如此,那么,這是一個(gè)好習(xí)慣。如果安全性對(duì)你來說很重要,這就是最重要最需要學(xué)習(xí)的原則。

Dave目前正致力于為它的《WritingSecurePHP》系列書籍整理實(shí)例,書的最后他說:

最后,變得偏執(zhí)一點(diǎn)吧。除非你認(rèn)為你的站點(diǎn)永遠(yuǎn)不會(huì)受到攻擊,否則就正視所有的問題,當(dāng)問題真正發(fā)生的時(shí)候,你的情況會(huì)變得很糟。你需要把每個(gè)用戶都看成會(huì)帶來一場(chǎng)攻防站的黑客,想盡一切辦法來保護(hù)站點(diǎn)的安全,同時(shí)想好相應(yīng)問題的解決方案。

4.多使用PHP緩存–BenBalbo

BenBalbo開發(fā)了SitePoint,一個(gè)為developers和designers提供指導(dǎo)的網(wǎng)站。他是墨爾本PHP開發(fā)和開源俱樂部的成員,因此他對(duì)PHP有一定的了解,同時(shí)對(duì)PHPcaching有一定的想法和經(jīng)驗(yàn)。

如果你擁有一個(gè)訪問量很大,但更新并不頻繁的站點(diǎn)(比如blog,基于某種CMS),或許它需要進(jìn)行一些改造,這些改造不會(huì)花費(fèi)太多的時(shí)間,但是對(duì)性能有突出的貢獻(xiàn)。如果要為一個(gè)復(fù)雜/更新頻率很快的站點(diǎn)建立緩存機(jī)制,過程可能會(huì)很曲折,但是好處也是顯而易見的。

PHP緩存技術(shù)有很多種,Ben為我們推薦了如下一些:

緩存函數(shù)的運(yùn)行結(jié)果

設(shè)置過期時(shí)間

緩存IE下載的文件

模板緩存技術(shù)

Cache_Lite

由于PHP作為動(dòng)態(tài)語言的特性,緩存機(jī)制對(duì)于更新頻率并不快的站點(diǎn)來說非常重要。

5.使用IDE,Templates和Snippets加速PHP開發(fā)–ChadKieffer

當(dāng)ChadKieffer從UI設(shè)計(jì)和數(shù)據(jù)庫優(yōu)化的工作中抽身出來的時(shí)候,他會(huì)在他的博客2tablespoons上分享很多技術(shù)經(jīng)驗(yàn)。由于Chad多方面的全面發(fā)展,他經(jīng)??梢园l(fā)現(xiàn)其他程序員不能發(fā)現(xiàn)的問題,并形成相關(guān)經(jīng)驗(yàn),尤其是他開發(fā)網(wǎng)站的方法。他參與了網(wǎng)站開發(fā)的各個(gè)環(huán)節(jié),因此他的建議對(duì)于提高網(wǎng)站開發(fā)的大局觀非常有用。

Chad認(rèn)為使用EclipsePDT(Eclipse’sPHPdevelopmentpackage)這樣的IDE,同時(shí)使用一些模板技術(shù)和開源項(xiàng)目可以有效地提高PHP的開發(fā)速度。

緊湊的計(jì)劃,長(zhǎng)長(zhǎng)的todolists以及deadlines讓開發(fā)人員非??鄲灐2贿^有些功能,比如EclipseTemplates,可以有效減少編碼的時(shí)間和出錯(cuò)的幾率。

通常來說,任何項(xiàng)目都可以自動(dòng)化,自動(dòng)化程度越高,你完成項(xiàng)目的時(shí)間就越短?;〞r(shí)間來開發(fā)使用頻率很高的框架和模板,將會(huì)節(jié)省你以后更多時(shí)間。同時(shí),使用像EclipseandthePDTpackage這樣的IDE,你會(huì)發(fā)現(xiàn)效率得到明顯提高,IDE可以自動(dòng)閉合,補(bǔ)全分號(hào)并且可以在本地debug。

如果你已經(jīng)決定要學(xué)好PHP,找一家靠譜的培訓(xùn)機(jī)構(gòu),將會(huì)讓你的學(xué)習(xí)過程事半功倍。

“年度最受信賴職業(yè)教育品牌”千鋒教育,一直秉承“用良心做教育”的理念,同期在校學(xué)員5000余人,合作院校超500所,合作企業(yè)超10000家。全國(guó)有十三個(gè)校區(qū)。數(shù)十位總監(jiān)級(jí)專家講師全職授課,200余位業(yè)內(nèi)強(qiáng)師全程面授。

“中國(guó)教育集團(tuán)領(lǐng)先品牌”千鋒教育,關(guān)注學(xué)員和企業(yè)的雙向需求,每年為企業(yè)輸出20000+計(jì)算機(jī)精英,畢業(yè)學(xué)員占據(jù)全國(guó)移動(dòng)互聯(lián)網(wǎng)培訓(xùn)人才一半以上的份額。畢業(yè)學(xué)員平均薪資也是全行業(yè)最高。

“年度最具影響力IT教育機(jī)構(gòu)”千鋒教育PHP課程的教學(xué)老師,全部來自央企及上市公司,平均從業(yè)經(jīng)驗(yàn)5年以上。而且千鋒教育的老師實(shí)行淘汰制,學(xué)生進(jìn)行匿名投票。留下來的都是經(jīng)過學(xué)生投票檢驗(yàn)過的名師;

千鋒教育的PHP課程采用實(shí)戰(zhàn)教學(xué)和分階教學(xué)模式。課程內(nèi)容緊貼名企需求,以實(shí)戰(zhàn)傳授理論,不談虛的,只教真的。千鋒教育力求將學(xué)員打造成具備完美職場(chǎng)競(jìng)爭(zhēng)力的精英。千鋒教育也是學(xué)員項(xiàng)目敢上線的唯一機(jī)構(gòu)。

千鋒教育PHP培訓(xùn)班畢業(yè)學(xué)員,其平均年薪相比行業(yè)平均年薪,足足高出五萬。

學(xué)PHP,首選千鋒教育。千鋒教育力造IT培訓(xùn)領(lǐng)導(dǎo)品牌,學(xué)員百分之九十以上都是大專以上學(xué)生,力求為你營(yíng)造最優(yōu)質(zhì)的學(xué)習(xí)環(huán)境。

千鋒教育現(xiàn)更有0學(xué)費(fèi)入學(xué)、2周免費(fèi)試聽、跨學(xué)科周末班限時(shí)免費(fèi)送活動(dòng),一次報(bào)名,學(xué)習(xí)雙技能,如同打了五折。歡迎你前來咨詢,試聽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容