程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP系統設計與雲架構(1)

PHP系統設計與雲架構(1)

編輯:關於PHP編程

PHP系統設計與雲架構(1)


這幾年我比較少寫 PHP 了.

有陣子很迷它, 但是因為工作關系, 把較多的時間花在網絡封包和數據庫的分析工作上.

而且因為年記較大了所以也很難找到寫程序的工作多半都在做工程師的 “工頭”

對於這幾年 PHP 的變化我來不及參與.

在這裡收集這幾年對 PHP 的變化, 寫篇心得過過本人自己的乾隱:

回顧您以往的職業生涯, 您有好好的管理您寫的 CODE 嗎?

還是每次都寫到需求超級肥大了, 才延伸出一大堆的程序碼管理問題.

在這裡本人設計一個開發框架的架構, 讓你的程序更簡潔而且讓你的程序更有條有理的被應用.

當然這些架構教程我己經簡化很多, 如果放入太多的設計反而會得到反效果.

如果您是比較重口味的 PHP 設計者, 先說聲報歉了.

如果您常為了需求肥大難以管理你的程序,

這篇文章對您來說會是個值得參考的文章, 至少它有著我十幾年的需求開發經驗.

一.常見的 PHP 應用的架構:

在往下教程下去前, 本人先定義一些名詞, 以方便大家接下去閱讀教程.

  • DB :
    這一塊不用多介紹, 我相信大家對 DB 的經驗獨道, 我們直接跳過去.
  • Access Layer :
    這一塊全部都是放一些 Access Logic 在裡頭, 主要的工作是負責跟 DB 還有 MEMCACHE 溝通, 你可以使用現成的開發框架達成這一層的目地, 也可以自己開發.但是這些邏輯建議您都保留在這一層.

  • MEMCACHE :
    這一塊主要是做為分散式架構的存取層, 大家有沒有注意到一件事?它是走 TCP 11211 PORT .

它可以用在什麽地方?

a.讓你可以把從 DB 的資料撈到快取一份到 MEMCACHE ,來減輕資料庫的工作負擔, 這在大型而且流量很高的系統上, 它辨演很重要的角色就是可以減輕 DB 的工作量.
*我們這裡不多介紹 Memcahe 的使用及方式, 您可以多參考官方網站或其它網絡上的教程.

b.有一些不用儲存用完就不要的資料, 也可以利用 memcache 直接存取不用再交給 DB 去處理.

c.注意一件事:
在過去裡我的下屬們在使用它時常會犯一個錯就是爛用 Memcache ,

memcache 本身是一個 TCP 的服務在單台 linux 伺服器下最多只能使用1024個請求, 當然你可以用 ulimit 提高它, 但是請先了解它的本質用對地方.

它本身並不能做為程序本身加快程序效能的工具, 但是它是一個可以做到分散式的存取架構, 並且可以減輕 DB 負擔的工具, 的好用工具.

所以在使用它時要選對時機, 千萬不要爛用.

  • Access Layer :這一層的工作主要是存取資料層的邏輯, 我將會2.會有更詳細的說明.
  • Content Logic Layer :這一層的工作主要是負責處理存取層從 資料層要來的資料的邏輯, 我將會3.會有更詳細的說明.
  • Presentation Layer :這一層的工作意義重大, 它主要是標准化 Presentation Logic 與 Content Logic Layer 溝通的標准,讓你的畫面邏輯不會愈來愈肥大及復雜, 我將會4.會有更詳細的說明.
  • Presentation Logic Layer :這一層的工作是做為讓 你的畫面邏輯可以采用標准化的介面來與伺服器溝通, 如果 Presentation Layer 標准化了, 你的畫面邏輯的可重覆利用性就會更高及有彈性, 我將會5.會有更詳細的說明.
  • Client Layer :這一層就是我們平時便用的浏覽器,雲端服務等等的應用, 相信大家非常了解這一層可以做到的事, 所以我們就不多介紹 Client Layer 了.




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved