視頻-咆哮tom貓之 學計算機的你傷不起
01 前言--上了賊船
不知道何時就上了PHP的賊船了,開始了web的開發,記得差不多兩年前我還是做傳統電子行業的人,就是嵌入式的方向,那時在天津或擺弄手機,或下煤窯擺弄電話,抑或就是在醫療電子擺弄血壓計,終於熬不住了,錢太少了!
我的一個基友,告訴我,孩子,別哭,咱學PHP吧,可以站起來擼。。。

我眼里放光,就屁顛屁顛地跟來了。問我為啥不選擇如日中天的王道Java,基友的話,比PHP難太多,咱專注的是互聯網領域。來到了宇宙中心五道口,開始了PHP的實踐之路,這是家做互聯網教育的機構,我在這里學習工作的很開心,做了不少的項目,結交了不少的朋友,帝都的美麗畫卷猶如一個美麗的女子一般在我眼前徐徐展開。我很開心。
后來來到現在的這家醫療互聯網的公司,PHP使用的是自己的框架,有很深的Java的痕跡,用到了很多web的組件。學習了很多。像底層的ORM, 領域驅動模式,業務數據的拆分,異步MQ, 緩存Memcache, redis等等。
從2014年8月份到現在 2017年的2月份,正好2年半的時間里,我覺得是時候自己好好聊一聊PHP了。說的好的地方,希望您不吝掌聲和贊美,說的不好的地方,你就拍磚,指出來,以供我改正,良辰在此謝過了。
02 web開發語言--PHP
PHP是一門專注於web開發的腳本語言,語法簡單,非常容易上手,但是要做的很深很好就不容易了。就像大家都會寫字,但是寫出非常漂亮的文章,就不是一般人能做到了。PHP開發的領域也比較廣闊,設計web開發的方方面面,技術黃金組合LAMP/LNMP,也指的是Linux操作系統, Apache/Nginx web服務器, mysql數據庫,和PHP這個編程語言。

03 面向對象和數據結構--PHP
前幾年PHP還是面向過程的編程,近來變成了面向對象了,一句話,還是簡單,可定制,程序相當自由靈活,任何的變量,你都可以 var_dump打印出來看看到底是什么,比Java什么的好多了,Java打印不同的變量,都要不同的類的不同方法來實現,比較的繁瑣。還有PHP的主要的數據結構主要是字符串和數組,這里邊基本上包含了PHP %80的編程量,PHP的數組尤其強大,幾乎實現了Java中的集合,哈希等多種結構,就是這么簡單快捷,一氣呵成。

04 MVC,框架和設計模式
PHP的開發,也是遵循MVC模式的,數據層Model,視圖層View,控制層Controller。這種低耦合高內聚的設計方法也成了行業的圭臬。很多的PHP的優秀的框架像CI,ThinkPHP都是遵循MVC的,當然你自己高興,也可以在PHP中實現你自己所謂的常見的設計模式,像單例模式,觀察者模式等等。
05 LAMP/LNMP--開源免費的黃金組合
Linux系統確實挺牛的,那命令下的簡潔高效,那黑底白字的優雅,那穩定強悍的性能,都使人深深着迷!PHP的服務端代碼就運行在Linux這個免費高效的系統上面,很多運維人員也用shell或者Python等其他語言和Linux不斷聊着人生。VIM更是Linux下的神之編輯器,每天都會有新的學習和成長,驚喜每一天啊。

Apache和Nginx都是PHP常用的web服務器,主要解決路由和請求轉發的問題,還有負載均衡,反向代理等。做成集群,以構建高可用的web應用,這都是企業級的應用。這一部分也是我要精進的部分,有時間還得是拿來源碼等好好研讀一番,設計的精妙,盡在其中。
MySQL數據庫,也是小巧而可愛,與PHP是天造地設的一對,增刪改查,無一不能,支持事務的Innodb引擎,優化查詢語句的路上,你我都需要費點思量。
PHP本身是這里邊的核心,畢竟她是編程語言。這是世界上最好的編程語言,在Linux系統上運行,接受Apache或Nginx轉發過來的請求,去Mysql數據庫中拿處理展示的數據。這就是PHP的魅力,在前端和JavaScript一起渲染html的頁面,華麗麗,牛逼逼,就是這么屌,哈哈~
06 高性能web應用--PHP的架構方向
保證網站性能的高性能,高可用的狀態,等設計到架構的方面,從用戶從瀏覽器中輸入網址,到一個華麗的頁面展示在用戶的面前,雖然只有短短的幾秒時間,中間卻經歷了太多太多的東西,現在咱們就解開這里的神秘面紗。
輸入網址,瀏覽器客戶端就發起了http的請求,到DNS解析網址對應的IP,到CDN數據中心,一路路由凱歌猛進,速度當然是光速了。在光纖或者電纜中信號電光石火。到網址的web服務器層面,被負載均衡路由到某個服務器集群下的服務器,有可能從緩存服務器直接拿數據走了,也可能請求到PHP的代碼,繼續到MySql數據庫,業務處理完之后,輸出給web服務器,沿原路返回,到客戶端的瀏覽器,和JS一起進行渲染頁面。完成全部的工作。是不是很神奇啊。

里面用到的技術很多呢,DNS,CDN,負載均衡,反向代理,緩存服務器集群,應用服務器集群,路由算法,數據庫集群等待,都足以讓你學習一番的了。
07 寫在最后
技術的精進,永無止境,學些吧,你可以做的更好。
PHP這樣的語言漂亮妹子,你值得擁有~
