PHP編程開發(fā)的10條原則_第1頁
PHP編程開發(fā)的10條原則_第2頁
PHP編程開發(fā)的10條原則_第3頁
PHP編程開發(fā)的10條原則_第4頁
PHP編程開發(fā)的10條原則_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——PHP編程開發(fā)的10條原則PHP編程開發(fā)的10條原那么

在WEB開發(fā)世界里,PHP是最流行的語言之一,以下是我探尋整理的關(guān)于PHP編程開發(fā)的10條原那么,供參考借鑒,夢想對大家有所扶助!想了解更多相關(guān)信息請持續(xù)關(guān)注我們我!

1.在適合的時候使用PHP–RasmusLerdorf

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

和大量開源工程一樣,PHP變得流行,流行的動機并不能用正常的哲學來舉行解釋,甚至流行得有些孤芳自賞。它完全可以作為一個案例,一個解決各種Web問題的工具需求所引起的案例,因此當PHP剛展現(xiàn)的時候,這種工具需求全部聚焦到PHP的身上。

但是,你不能奢望PHP可以解決全體問題。Lerdorf是第一個供認PHP只是一種工具的人,并且PHP也有好多力所不能及的處境。

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

作為一個web開發(fā)者,嘗試用PHP解決全體問題是不科學的,同時也會濫用你的時間。當PHP玩不轉(zhuǎn)的時候,不要躊躇,試用一下其他的語言吧。

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

沒有人容許質(zhì)疑MattMullenweg在PHP方面的權(quán)威性,他開發(fā)了這個星球上最流行的blog系統(tǒng),依靠一個強大的社區(qū)氣力支持:WordPress.創(chuàng)造Wordpress以后,Matt和他的團隊啟動了WordP平臺,一個基于WordPressMU的免費blog站點?,F(xiàn)在,W已經(jīng)擁有大約400萬用戶,這些用戶每天供給超過140,000篇的日志。要查看更多W的統(tǒng)計處境,請點擊這里.

假設有人知道如何讓網(wǎng)站的規(guī)模伸縮自如,這個人確定是MattMullenweg。2022年的時候Matt對Wordpress的數(shù)據(jù)布局舉行了前瞻性的提升,并且解釋了為什么WordpressMU對每個blog使用獨立的MYSQL表格,而不是把全體的blog數(shù)據(jù)都塞進一個巨大的表格。

我們測試過這個方法,但是察覺假設要擴展它的伸縮性,代價太高。假設用一個整體的數(shù)據(jù)布局,在大流量面前,你將會面臨服務器硬件的問題。在MU里面。用戶們都被分布到獨立的表格當中,并且可以輕易地組織起來。舉個例子,WordP把用戶的數(shù)據(jù)分散存儲到4096個數(shù)據(jù)庫中,這些數(shù)據(jù)庫可以分散大規(guī)模的數(shù)據(jù)訪問,實現(xiàn)流量和壓力分流。

數(shù)據(jù)表的可遷移性讓代碼blog可以運行得更快,并且讓系統(tǒng)具備更強的伸縮性。依靠強大的緩存策略和生動的數(shù)據(jù)庫運用策略,Matt向人們表示了時下最流行的臉譜網(wǎng)和W都可以在PHP下穩(wěn)定運行,并且處理驚人的訪問量。

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

DaveChild是AddedBytespreviously網(wǎng)站的核心人物,這個網(wǎng)站以他卓越的《cheatsheetsformanyprogramminglanguages》而有名。Dave為好多英國的公司服務,并且已經(jīng)在編程世界里樹立起相當?shù)臋?quán)威。

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

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

Dave目前正致力于為它的《WritingSecurePHP》系列書籍整理實例,書的結(jié)果他說:

結(jié)果,變得偏執(zhí)一點吧。除非你認為你的站點永遠不會受到攻擊,否那么就正視全體的問題,當問題真正發(fā)生的時候,你的處境會變得很糟。你需要把每個用戶都看成會帶來一場攻防站的黑客,想盡一切手段來養(yǎng)護站點的安好,同時想好相應問題的解決方案。

4.多使用PHP緩存–BenBalbo

BenBalbo開發(fā)了SitePoint,一個為developers和designers供給指導的網(wǎng)站。他是墨爾本PHP開發(fā)和開源俱樂部的成員,因此他對PHP有確定的了解,同時對PHPcaching有確定的想法和閱歷。

假設你擁有一個訪問量很大,但更新并不頻繁的站點譬如blog,基于某種CMS,或許它需要舉行一些改造,這些改造不會花費太多的時間,但是對性能有突出的付出。假設要為一個繁雜/更新頻率很快的站點建立緩存機制,過程可能會很曲折,但是好處也是顯而易見的。

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

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

設置過期時間

緩存IE下載的文件

模板緩存技術(shù)

Cache_Lite

由于PHP作為動態(tài)語言的特性,緩存機制對于更新頻率并不快的站點來說分外重要。

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

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

Chad認為使用EclipsePDTEclipse’sPHPdevelopmentpackage這樣的IDE,同時使用一些模板技術(shù)和開源工程可以有效地提高PHP的開發(fā)速度。

緊湊的籌劃,長長的todolists以及deadlines讓開發(fā)人員分外苦悶。不過有些功能,譬如EclipseTemplates,可以有效裁減編碼的時間和出錯的幾率。

通常來說,任何工程都可以自動化,自動化程度越高,你完成工程的時間就越短。花時間來開發(fā)使用頻率很高的框架和模板,將會節(jié)省你以后更多時間。同時,使用像EclipseandthePDTpackage這樣的IDE,你會察覺效率得到明顯提高,IDE可以自動閉合,補全分號并且可以在本地debug。

6.利用好PHP的過濾函數(shù)–JoeySochacki

或許JoeySochacki并不像MattMullenweg那樣著名,但他也是一個閱歷豐富的開發(fā)者,并且通過他的博客Devolio共享了好多技術(shù)閱歷

Joey察覺在編寫php代碼的過程中有好多地方需要舉行過濾,但卻并沒有太多的coder關(guān)注php的內(nèi)置過濾函數(shù)。

過濾數(shù)據(jù)是我們經(jīng)常需要做的事情,但是好多功能豐富的PHP內(nèi)置過濾函數(shù)卻不為人知。使用類似filter_*的PHP內(nèi)置函數(shù),我們幾乎可以處理全體的過濾任務,包括數(shù)據(jù)類型驗證/URL/email和IP地址驗證/特殊字符處理等等。

過濾是一件繁雜的事情,但是我相信joey的察覺會給你好多啟發(fā),讓你熟悉到PHP強大的過濾功能。

7.使用PHP框架–JoshSharp

對于是否理應使用Zend,CakePHP,CodeIgniter,或者其他PHP框架,一向存在著好多爭議,但是在web開發(fā)者的心中,他們有自己衡量的標準。

JoshSharp自己創(chuàng)造了一家供給面包和黃油服務的網(wǎng)站,因此他對于使用PHP框架來開發(fā)網(wǎng)站有確定的閱歷。他認為使用一個PHP框架來舉行工程開發(fā)useaPHPframework,可以有效地節(jié)省時間,并且裁減出錯的幾率。為什么?由于他覺得PHP實在是太好上手了。

PHP的易于使用有時候也有缺陷,由于并不嚴格的.語法,經(jīng)常會導致好多錯誤代碼的誕生。但假設使用一個PHP框架,出錯的幾率就會大大裁減。

PHP框架可以讓你的代碼布局更加模范,并且節(jié)省大量時間。

8.不要使用PHP框架–RasmusLerdorf

與Josh的觀點恰恰相反,PHP的鼻祖RasmusLerdorf卻認為最好不要使用PHP框架,為什么?由于不基于框架的PHP性能更好。Rasmus在Drupalcon2022的演講上,用“HelloWorld”的例子來比較了一些框架PHP和簡樸PHP之間的性能,結(jié)果顯示框架PHP的性能要遠遠落后。

9.使用批處理–JackD.Herrington

JackHerrington對PHP世界并不目生,并且為大名鼎鼎的IBMdeveloperWorks付出過超過30篇的專搞,同時出版過《PHPHacks》的書,因此他是一個真正的專家。

Herrington推舉使用批處理和Cron來代替那些可以運行在后臺的程序腳步,Web用戶并不容許在線等待你的處理過程,所以有些事情更適合放到后臺來處理。

誠然,在某些處境下,這有點大材小用了,但是你可以領(lǐng)會地看到,使用Cron,MySQL,PHP面向?qū)ο蟮姆椒ㄒ约癙ear::DB這些便捷的工具來創(chuàng)造一個批處理工具并不是一件繁雜的事情。

Jack認為使用cron,PHP和MySQL在后臺處理一些任務,比起多進程的業(yè)務規(guī)律要劃算得多。

兩種方法我都嘗試過,我認為Cron分外符合”KeepItSimple,Stupid”KISS的原那么,它讓后臺處理變得簡樸。與多進程的業(yè)務規(guī)律相比,它沒有內(nèi)存溢出的風險。你可以創(chuàng)造一個簡樸的批處理腳本,并且在cron中運行,這個腳本會定時檢查是否有任務需要處理,處理完之后就會自動退出,因此你不用惦記是否有進程卡殼,或者陷入死循環(huán)。

10.實時啟用錯誤報告–DavidCummings

DavidCummings有一個特意供給CMS軟件服務的公司,并且獲得過幾次獎,他有分外豐富的PHP開發(fā)閱歷。David曾經(jīng)寫過《twoPHPtipshewishedhe’dlearnedinthebeginning》,其中一點就是:實時啟用錯誤報告,這會節(jié)省大量的時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論