十年程式設計師用眼告訴你 2018 PHP 不一樣
PHP從誕生到現在已經有20多年曆史,從Web時代興起到移動網際網路退潮,網際網路領域各種程式語言和技術層出不窮, Node.js 、GO和Python不斷地在挑戰PHP的地位。這些技術的推動者非常熱衷於唱衰PHP,PHP語言的未來在哪裡?PHP程式設計師當如何應對未來的變革?
作為老牌的Web後端程式語言,PHP在全球市場佔有率非常高,僅次於Java,從各個招聘網站的資料上來看PHP開發的職位非常多,薪資水平也非常不錯。實際在中小企業、網際網路創業公司PHP的市場地位是高於Java的。Java在超大型企業、傳統軟體行業、金融領域優勢更大。目前來看 Node.js、 GO 、 Python 、 Ruby 等語言還難以企及PHP和Java。
PHP語言之所以能有今天的地位,得益於PHP語言設計者一直遵從實用主義,將技術的複雜性隱藏在底層。PHP語言入門簡單,容易掌握,程式健壯性好,不容易出現像Java 、 C++ 等其他語言那樣複雜的問題,如記憶體洩漏和 Crash,跟蹤除錯相對輕鬆很多。
PHP官方提供的標準庫非常強大,各種功能函式都能在官方的標準庫中找到,包括MySQL、Memcache、Redis、GD圖形庫、CURL、XML、JSON等等,免除了開發者到處找庫的煩惱。PHP 的文件非常棒,每個函式都有詳細的說明和使用示例。第三方類庫和工具、程式碼、專案也很豐富。開發者可以快速、高效地使用PHP編寫開發各類軟體。
到目前為止市面上仍然沒有出現比PHP更簡單易用的程式語言。所以PHP的前景還是很廣闊的,與其糾結於程式語言的選擇,不如好好地深入學習使用PHP 。
作為一個資深的PHP開發者,在技術上給各位PHP程式幾點未來的建議,希望對大家有所幫助。
01 Composer
第一點就要提Composer,自從Composer出現後,PHP的依賴管理可以變得非常簡單。程式內依賴一些類庫和框架,直接使用Composer引入即可,通過使用composer update安裝依賴的包。解決了過去載入外部庫的各種難題。
Composer也有國內映象,速度非常快。現在絕大部分PHP開源的專案都提供了Composer的支援,建議大家在專案中使 Composer來解決PHP程式碼包管理的問題,不要再使用下載原始碼、手工include的原始方法。
02 PHP7
PHP7版本對Zend引擎做了大量修改,大幅提升了PHP語言的效能,使用PHP7可以使你的程式效能瞬間翻倍。即使是WordPress這樣重量級的軟體執行在PHP7都能有上千QPS,相當於一臺伺服器每天就能處理8000萬次請求。
使用PHP7,做好MySQL優化,使用Memcache和Redis進行加速,這套技術架構完全可以應對相當大規模的系統。除了某些億級使用者的平臺之外,一般規模的系統完全沒有壓力。
03 PSR
PSR是PHPFramework Interop Group 組織制定的PHP語言開發規範,約定了很多方面的規則,如名稱空間、類名規範、編碼風格標準、Autoload、公共介面等。現在已經成為PHP技術社群事實上的標準了。很多知名的PHP框架和類庫都遵守了PSR規範。
PHP開發者應當學習掌握PSR規範,在開發程式時應當儘量遵循PSR規範。
04 Swoole
2017年PHP還侷限於做Web網站嗎?No,如果你還不知道Swoole,趕快去了解一下吧。Swoole的口號是重新定義PHP語言,Swoole是一個非同步並行的通訊引擎,作為PHP的擴充套件來執行。
Node.js的非同步回撥Swoole有,Go語言的協程Swoole也有,這完全顛覆了對PHP的認知。使用Swoole PHP 可以實現常駐記憶體的Server程式,可以實現TCP、UDP非同步網路通訊的程式設計開發。
過去PHP只能做一個Web網站,現在使用Swoole可以做Java 、C++才能實現的通訊服務,比如WebSocket即使通訊、聊天、推送伺服器、RPC遠端呼叫服務、閘道器、代理、遊戲伺服器等。如果你想用PHP做點Web系統之外的東西,Swoole是最好的選擇。
05 Laravel
最近幾年最火熱的PHP框架,官網號稱是為Web藝術家設計的框架,可見這套框架有多優雅。Laravel提供的功能模組豐富,API設計簡潔,表達力強。而且它的社群非常活躍,程式碼貢獻者眾多,第三方的外掛非常多,生態系統相當繁榮。
Laravel底層使用了很多symfony2元件,通過composer實現了依賴管理。如果還在糾結使用什麼PHP框架,不如選擇 Laravel。Laravel提供的命令列工具基於symfony.console實現,功能強大,整合了各種專案管理、自動生成程式碼的功能。
06 Phar
PHP5.3之後支援了類似Java的jar包,名為phar。用來將多個PHP檔案打包為一個檔案。這個特性使得PHP也可以像Java一樣方便地實現應用程式打包和元件化。一個應用程式可以打成一個Phar包,直接放到PHP-FPM中執行。
配合Swoole,可以在命令列下執行php server.phar 一鍵啟動伺服器。PHP的程式碼包可以用Phar打包成元件,放到Swoole的伺服器容器中去載入執行。
相關文章
- 十年程式設計師用眼告訴你2018PHP不一樣程式設計師PHP
- 一位十年軟體工程師告訴你什麼是程式設計思想軟體工程工程師程式設計
- 為什麼用 Java:一個 Python 程式設計師告訴你JavaPython程式設計師
- 碼教授告訴你IT程式設計師如何找到高薪職業程式設計師高薪
- 我來告訴你,草根程式設計師如何進入BAT程式設計師BAT
- 告訴你架構師與程式設計師的區別在哪裡架構程式設計師
- 好程式設計師告訴你Java架構師學習路線程式設計師Java架構
- 一個故事告訴你什麼才是好的程式設計師程式設計師
- 一圖告訴你 BAT 明星程式設計師是如何跳槽的BAT程式設計師
- 讓老媽告訴你如何程式設計程式設計
- 2018年UI設計師的前景如何?長沙牽引力用資料告訴你UI
- 程式設計師和工程師有什麼不一樣?程式設計師工程師
- 幾張圖告訴你現在程式設計師的殘酷現狀程式設計師
- 我來告訴你,一個草根程式設計師如何進入BAT程式設計師BAT
- 阿里十年架構師用一張圖告訴你什麼是系統架構師阿里架構
- 在西方的程式設計師眼裡,東方的程式設計師是什麼樣的?程式設計師
- 長沙牽引力科技告訴你什麼樣的UI設計師工資高UI
- 工作了 7 年的”年輕”程式設計師,想告訴你這些程式設計師
- 兩個故事告訴大家,程式設計師技術和運氣同樣重要...程式設計師
- 作為一個程式設計師,告訴你一些編碼知識程式設計師
- 程式設計師職場起點6要素 前輩們那些經歷告訴你程式設計師
- IT老兵告訴你資料中臺和大資料平臺有啥不一樣?大資料
- 用Github上的高星專案,告訴你程式設計師過雙十一的正確姿勢Github程式設計師
- 你們不能這樣招聘程式設計師程式設計師
- 邁進java初中級程式設計師分水嶺是否合格?十個題告訴你!Java程式設計師
- 程式設計師單身比例有多高?【2019開發者圖鑑】告訴你程式設計師
- 大牛告訴你,只有突破程式設計師思維,才不會淪為碼農!程式設計師
- 程式設計師如何擺脫單身煩惱,這七張圖將告訴你如何脫單!程式設計師
- 十年程式設計師的告誡:千萬不要重寫程式碼!程式設計師
- 用概念設計告訴你谷歌日曆可以多強大谷歌
- 別人眼裡的程式設計師程式設計師
- 大學老師告訴我:20年內程式設計師會被取代,未來不需要程式設計師...程式設計師
- 好程式設計師告訴你HTML好在哪裡,為什麼值得我們學習程式設計師HTML
- 好程式設計師Java培訓告訴你Java-執行緒怎麼來的?程式設計師Java執行緒
- 如何“友好”地告訴經理:有一個好程式設計師是你的幸運?程式設計師
- 【IT雜談】十年程式設計師程式設計師
- java面試官:程式設計師,請你告訴我是誰把公司面試題洩露給你的?Java程式設計師面試題
- 2018年中國程式設計師研究報告程式設計師