欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

精通php的十大要點(diǎn)(上)

 更新時(shí)間:2009年02月04日 03:15:46   作者:  
原文地址:http://nettuts.com/tutorials/php/10-principles-of-the-php-masters/ 翻譯整理:Andrew,如需轉(zhuǎn)載請(qǐng)注明出處。

1. 在合適的時(shí)候使用PHP - Rasmus Lerdorf
沒有誰(shuí)比PHP的創(chuàng)建者Rasmus Lerdorf明白PHP用在什么地方是更合理的, 他于1995年發(fā)布了PHP這門語(yǔ)言,從那時(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腳步語(yǔ)言。

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

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

沒有人愿意質(zhì)疑Matt Mullenweg在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è)基于Wordpress MU的免費(fèi)blog站點(diǎn)?,F(xiàn)在,Wordpress.com已經(jīng)擁有大約400萬(wàn)用戶, 這些用戶每天提供超過 140,000篇的日志。 (要查看更多Wordpress.com的統(tǒng)計(jì)情況,請(qǐng)點(diǎn)擊這里.)

如果有人知道如何讓網(wǎng)站的規(guī)模伸縮自如,這個(gè)人一定是Matt Mullenweg。2006年的時(shí)候 Matt對(duì)Wordpress的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了前瞻性的改進(jìn),并且解釋了為什么Wordpress MU對(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ù)庫(kù)中,這些數(shù)據(jù)庫(kù)可以分散大規(guī)模的數(shù)據(jù)訪問,實(shí)現(xiàn)流量和壓力分流。

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

3. 千萬(wàn)不要相信用戶 - Dave Child

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

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

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

Dave目前正致力于為它的《Writing Secure PHP》系列書籍整理實(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緩存 - Ben Balbo

Ben Balbo開發(fā)了Site Point,一個(gè)為developers和designers提供指導(dǎo)的網(wǎng)站。他是墨爾本PHP開發(fā)和開源俱樂部的成員, 因此他對(duì)PHP有一定的了解,同時(shí)對(duì)PHP caching有一定的想法和經(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)語(yǔ)言的特性,緩存機(jī)制對(duì)于更新頻率并不快的站點(diǎn)來說非常重要。

5. 使用IDE, Templates和Snippets加速PHP開發(fā) - Chad Kieffer

當(dāng)Chad Kieffer從UI設(shè)計(jì)和數(shù)據(jù)庫(kù)優(yōu)化的工作中抽身出來的時(shí)候,他會(huì)在他的博客2 tablespoons上分享很多技術(shù)經(jīng)驗(yàn)。由于Chad多方面的全面發(fā)展,他經(jīng)常可以發(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)為使用Eclipse PDT
(Eclipse's PHP development package) 這樣的IDE,同時(shí)使用一些模板技術(shù)和開源項(xiàng)目可以有效地提高PHP的開發(fā)速度。

緊湊的計(jì)劃,長(zhǎng)長(zhǎng)的to do lists以及deadlines讓開發(fā)人員非??鄲?。不過有些功能,比如Eclipse Templates,可以有效減少編碼的時(shí)間和出錯(cuò)的幾率。

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

Related posts:

  1. wordpress成功升級(jí)到2.3.2 雖然tag對(duì)我來說沒什么用,但是著眼于安全性,我還是升級(jí)了,從兩年前的2.0.5升級(jí)到現(xiàn)在的2.3.2,著實(shí)需要一份勇氣和決心,幸好在本地跑升級(jí)的時(shí)候沒有出現(xiàn)任何問題,只是模板上的功能需要一些簡(jiǎn)單的修改。 線上的升級(jí)一切順利,很多人會(huì)納悶,你剛才不是還發(fā)post求助升級(jí)辦法么? 嗯,我已經(jīng)找到了最好的工具,WordPress Automatic Upgrade plugin 這款wordpress的自動(dòng)升級(jí)插件真正讓你升級(jí)無(wú)憂,因?yàn)樗鼤?huì)在升級(jí)之前為你備份所有的文件和數(shù)據(jù),用起來也是“一路next”型,相信很適合那些不想為升級(jí)煩心的blogger們,不過有個(gè)問題,升級(jí)以后的export功能出現(xiàn)問題,提示找不到wp-config.php,不知道是普遍有此問題還是我blog的問題,遇到同樣問題的朋友請(qǐng)給我留言,我來研究一下解決辦法。(經(jīng)過研究發(fā)現(xiàn),原來是coolcode插件中訪問路徑的問題,只要取消此插件的激活,Export功能就可以正常使用了) ...
  2. 誰(shuí)有從Wordpress2.0升級(jí)的經(jīng)歷 今天下載了wordpress-2.3.2,本來想升級(jí),但是發(fā)現(xiàn)版本跨越不小,數(shù)據(jù)結(jié)構(gòu)變化貌似不小,升級(jí)比較麻煩,風(fēng)險(xiǎn)太大,所以暫時(shí)放棄,哪位朋友有從wordpress2.0升到2.3的經(jīng)驗(yàn),分享一下吧,感激不盡。 ...
  3. 翻譯:《14個(gè)絕佳的站長(zhǎng)工具》(下) 原文:http://www.conversion-rate-experts.com/articles/understanding-your-visitors/ 此文是由Andrew(http://www.achome.cn)自主翻譯的,如需轉(zhuǎn)載請(qǐng)注明出處。 用戶是最好的宣傳和銷售人員,來聽聽他們是如何宣傳的吧,Tell-a-Friend King—立即體驗(yàn)! 你是否擁有一個(gè)用戶推薦的系統(tǒng)?一個(gè)可以讓用戶發(fā)信邀請(qǐng)朋友的系統(tǒng)。我們可以看到, 這些用戶發(fā)的信里面包含“為什么用戶在您的網(wǎng)站上消費(fèi)”這個(gè)問題的答案。很多人花費(fèi)大量的時(shí)間來進(jìn)行自我定位和制定吸引人的廣告詞,但通過用戶的推薦信,你就可以找到用戶為什么青睞你的原因。 輕松收集用戶反饋, Kampyle—立即體驗(yàn)! Kampyle可以讓用戶在你的網(wǎng)站上提交用戶反饋(通過頁(yè)面底部的一個(gè)小button),點(diǎn)擊以后會(huì)彈出一個(gè)窗口讓用戶填寫他們的意見和建議。 站長(zhǎng)們可以登錄Kampyle的官網(wǎng)去查看和管理收集到的用戶反饋,如果用戶留下了email地址,站長(zhǎng)們還可以輕易地通知用戶,他們已經(jīng)收到反饋并將進(jìn)行相應(yīng)的改進(jìn)。...

相關(guān)文章

  • PHP CLI模式下的多進(jìn)程應(yīng)用分析

    PHP CLI模式下的多進(jìn)程應(yīng)用分析

    PHP在很多時(shí)候不適合做常駐的SHELL進(jìn)程, 他沒有專門的gc例程, 也沒有有效的內(nèi)存管理途徑. 所以如果用PHP做常駐SHELL, 你會(huì)經(jīng)常被內(nèi)存耗盡導(dǎo)致abort而unhappy
    2013-06-06
  • php-fpm開啟狀態(tài)統(tǒng)計(jì)的方法詳解

    php-fpm開啟狀態(tài)統(tǒng)計(jì)的方法詳解

    這篇文章主要給大家介紹了php-fpm開啟狀態(tài)統(tǒng)計(jì)的方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • PHP Header用于頁(yè)面跳轉(zhuǎn)時(shí)的幾個(gè)注意事項(xiàng)

    PHP Header用于頁(yè)面跳轉(zhuǎn)時(shí)的幾個(gè)注意事項(xiàng)

    大家都知道header函數(shù)中Location類型的標(biāo)頭是一種特殊的header調(diào)用,常用來實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),在新手剛學(xué)習(xí)的時(shí)候有些注意事項(xiàng)要注意,下面通過本文來詳細(xì)看看吧。
    2016-10-10
  • php 中self,this的區(qū)別和操作方法實(shí)例分析

    php 中self,this的區(qū)別和操作方法實(shí)例分析

    這篇文章主要介紹了php 中self,this的區(qū)別和操作方法,結(jié)合實(shí)例形式分析了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中self,this的功能、區(qū)別、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • Thinkphp事件機(jī)制兩種實(shí)現(xiàn)方式詳解

    Thinkphp事件機(jī)制兩種實(shí)現(xiàn)方式詳解

    根據(jù)官方文檔thinkphp6的事件機(jī)制涉及三個(gè)類:事件類(event)、監(jiān)聽類(listener)、訂閱類(subscribe)。官方的文檔以及官方的視頻都沒把事件機(jī)制講清楚。下面我以單應(yīng)用為例用另一種方式給大家總結(jié)一下
    2022-09-09
  • PHP對(duì)象實(shí)例化單例方法

    PHP對(duì)象實(shí)例化單例方法

    本文主要介紹了PHP實(shí)例化對(duì)象單例的方法,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • php批量上傳的實(shí)現(xiàn)代碼

    php批量上傳的實(shí)現(xiàn)代碼

    本篇文章是對(duì)php批量上傳的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP生成月歷代碼

    PHP生成月歷代碼

    PHP生成月歷代碼...
    2007-06-06
  • PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能示例

    PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能示例

    這篇文章主要介紹了PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能,結(jié)合實(shí)例形式分析了php基于mcrypt實(shí)現(xiàn)AES加密的相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • PHP微信支付功能示例

    PHP微信支付功能示例

    這篇文章主要介紹了PHP微信支付功能,結(jié)合實(shí)例形式分析了php微信支付功能相關(guān)sdk與使用技巧,需要的朋友可以參考下
    2019-03-03

最新評(píng)論