php知識必備

來源:互聯網
上載者:User
最流行的PHP MVC架構
http://yp.oss.org.cn/software/show_resource.php?resource_id=742
Yii(音 易架構,我一般直接讀YII) CodeIgniter(簡讀CI) Symfony CakePHP

MVC ,這個看百度就行,MVC在電腦界通用
http://baike.baidu.com/view/31.htm

如何提高php運行速度
http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2012/0105/9616.html
這裡提到了Zend Optimizer,一般這個都不太用
Zend Cache、APC和Afterburner Cache,這幾種模組緩衝,APC是常用的,一般用它緩衝include require的東西(開啟apc功能後,這些自動的,即之後php運行到require的東西不會去讀硬碟,而是讀cache)
壓縮網頁內容,是指內容類別的網站,輸出的html代碼很多,開啟gzip減少網路傳輸量
代碼層面的,代碼複用,使用內建函式,演算法好一些,邏輯簡化,都能一定程度加速

提高速度,本質的找到一個功能塊的效能瓶頸,針對問題做特別的最佳化。
比如如果mysql讀取量較大,根據使用頻繁程度做cache,避免多次請求mysql,分擔壓力。cache可以使用本地檔案cache,可以使用memcache redis以及一些nosql資料庫(nosql的資料庫一般都是key-value資料庫)
有一些很耗時的處理,可以考慮是否可以預先處理,通過計劃任務定時處理好存起來,使用時直接調用,而不用現計算。
還有一些耗時,但是此次請求並不直接關心結果的,可以考慮非同步處理,比如把它丟給[訊息佇列],由另一個程式去執行相關操作,這樣當前程式可以很快返回結果。
所有高並發的網站架構,都是要分布式的,即一個請求可能會由好多個機器共同分擔完成,網站伺服器分布,資料庫分布,儲存分布。

網站分布,為了增加不同地區使用者訪問速度,會將網站主機布到多種機房內,電信,聯通,鐵通,移動,海外等機房。訪問的時候根據來源分配到相應的伺服器上,一般同一種網路內的伺服器是隨機分配的,使用負載平衡器,來做調度,也可以使用DNS輪循的方式隨機分配。問你負載平衡等實現細節可以不知道,提到這些詞就可以了,有硬體專門做,也可以用程式來類比實現。程式實現無非是寫一個演算法來隨機分配。DNS輪循的要在DNS解析層做,這些是營運的事情。

網站分布了,資源請求是內部的,各機房之內通過伺服器之間打通來實現高速訪問,這是網路營運的事情。簡單的做法是在伺服器上採用雙線或多線,即一台伺服器有電信的IP也有網通的IP,這樣不同的網路過來,請求不同的IP地址,達到更高速訪問的目的。

資料庫分布,mysql提供主從(master-slave)的方式,即資料庫有一個主伺服器,可以有許多從伺服器,slave從master同步資料,網站伺服器請求時從slave來查詢,減輕master壓力。也可以按資料業務切分,將不同的資料放在不同的伺服器上,這樣也會減輕資料請求的壓力(但同時要訪問多台資料庫伺服器,又增加了一些開銷)。mysql的主從同步原理是binlog,通過同步主伺服器的操作命令過程,來實現在從伺服器上重建資料。同時這種模式也實現了讀寫分離,寫的時候在master上寫,讀的時候在slave上讀。防止大並發時受寫入速度影響讀取速度

儲存分布,一些資源可以不必放在主網站上,比如js css 圖片,可以放到其它機器上,我們經常會發現一些大網站的圖片,可能是img1 img2 img3 static pic等網域名稱開頭的這些都是將這種資源分開的做法。同時這些靜態資源,可以使用CDN來加速(CDN的全稱是Content Delivery Network,即內容分髮網絡),CDN伺服器可以自己建,也可以購買第三方服務


版本管理,從CVS 到SVN 以及GIT,一般要會SVN,CVS是早期使用的,現在被SVN取代,新一代的GIT現在正在崛起。
代碼版本管理軟體的作用是,將代碼儲存在伺服器上,通過更新,提交兩種操作,來實現代碼的最終修改,這樣多人合作時方便。在版本發布時,打一個tag,就將代碼定格在那一時刻。你可以繼續開發你的,不會干擾那個tag。也可以開多個分支,這樣可以由不同的人開發多種版本,可以1.0 2.0等版本同時開發,互不影響。開發完了,也可以版本合并。
使用版本管理還有一個好處是,代碼在伺服器上,即使本機壞了,也不會影響大家工作成果。如果有人誤操作,將代碼毀了,也可以復原。
關於這三種版本管理軟體使用方法,自己百度


HTTP協議
http://www.blogjava.net/zjusuyong/articles/304788.html
重點看一下狀態代碼,200 304 403 404 500 502,其中304是伺服器設定一個靜態檔案失效時間,在有效期間內,瀏覽器接到伺服器端返回304狀態,不再從伺服器傳送檔案,而使用瀏覽器緩衝。這篇文章有時間要細讀,這是整個web請求的根基。很多最佳化的本質都是圍繞這個協議進行的。包括cookie是http協議的組成部分。

兩種常見保持會話的手段cookie session的區別
http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html

GET POST兩種http請求的區別
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

JSON 和 XML 這兩種資料格式
http://wenku.baidu.com/view/49800b83d4d8d15abe234e83.html
這兩種資料格式,通常做為第三方請求資料的返回格式,也可以是伺服器向前端返回資料的格式。自己的項目多用在AJAX請求返回。

關於AJAX
http://www.w3school.com.cn/ajax/
AJAX = 非同步 JavaScript 和 XML。也可以使用Json來替代XML。

然後又涉及javascript的幾個架構
http://www.blogjava.net/kent/articles/202855.html
主流使用的是 jQuery,它的普遍使用是因為它使用起來很簡單,容易理解
jQuery教程 http://www.w3school.com.cn/jquery/


Linux常用命令
cd ls cp rm mkdir ssh rsync wcp sudo
具體的命令不一定會考,但一定會問你會不會用linux,因為90%的互連網公司的web項目使用都是linux 或unix 做為伺服器,而不是windows

Mysql的幾種儲存(表)引擎
http://database.51cto.com/art/201105/259232.htm
主流使用MyISAM InnoDB
InnoDB和Myisam區別
http://wenku.baidu.com/view/2630add5b9f3f90f76c61b35.html


NoSQL資料庫
http://www.infoq.com/cn/news/2011/01/nosql-why
http://robbin.iteye.com/blog/524977
Redis,Tokyo Cabinet,MongoDB

Memcache也是NoSQL資料庫,但是它並不是持久儲存,只是放在記憶體中的cache
http://www.cnblogs.com/qiantuwuliang/archive/2011/03/07/1974499.html
memcache的用法

三大WEB伺服器對比分析 apache lighttpd nginx
http://wenku.baidu.com/view/96095c1f227916888486d7d2.html

全文檢索搜尋的幾種工具
Coreseek Sphinx Lucene


PHP的三種運行方式
http://blog.csdn.net/anljf/article/details/7086034
apache模組方式 CGI方式 FastCGI方式

PHP開發程式應該注意的42個最佳化準則
http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2012/0105/9617.html

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.