PHP 從誕生到如今已經有20多年曆史,從Web時代興起到移動互聯網退潮,互聯網領域各類編程語言和技術層出不窮, Node.js 、 GO 、 Python 不斷地在挑戰 PHP 的地位。這些技術的推進者很是熱衷於唱衰 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 程序十點將來的建議,但願對你們有所幫助。編程
第一點就要提 Composer ,自從 Composer 出現後,PHP 的依賴管理能夠變得很是簡單。程序內依賴一些類庫和框架,直接使用 Composer 引入便可,經過使用 composer update
安裝依賴的包。解決了過去加載外部庫的各類難題。Composer 也有國內鏡像,速度很是快。如今絕大部分PHP開源的項目都提供了 Composer 的支持,建議你們在項目中使用 Composer 來解決 PHP 代碼包管理的問題,不要再使用下載源碼、手工 include 的原始方法。segmentfault
PHP7 版本對 Zend 引擎作了大量修改,大幅提高了 PHP 語言的性能,使用 PHP7 可使你的程序性能瞬間翻倍。即便是 WordPress 這樣重量級的軟件運行在 PHP7 都能有上千 QPS ,至關於一臺服務器天天就能處理 8000 萬次請求。使用 PHP7 ,作好 MySQL 優化,使用 Memcache 和 Redis 進行加速,這套技術架構徹底能夠應對至關大規模的系統。除了某些億級用戶的平臺以外,通常規模的系統徹底沒有壓力。後端
PSR 是 http://www.php-fig.org/ 組織制定的PHP語言開發規範,約定了不少方面的規則,如命名空間、類名
規範、編碼風格標準、Autoload、公共接口等。如今已經成爲PHP技術社區事實上的標準了。不少知名的 PHP 框架和類庫都遵照了 PSR 規範。PHP 開發者應當學習掌握 PSR 規範,在開發程序時應當儘可能遵循 PSR 規範。瀏覽器
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 是最好的選擇。服務器
最近幾年最火熱的 PHP 框架,官網號稱是爲 Web 藝術家設計的框架,可見這套框架有多優雅。Laravel 提供的功能模塊豐富,API 設計簡潔,表達力強。並且它的社區很是活躍,代碼貢獻者衆多,第三方的插件很是多,生態系統至關繁榮。 Laravel 底層使用了不少 symfony2 組件,經過 composer 實現了依賴管理。若是還在糾結使用什麼PHP框架,不如選擇 Laravel 。 Laravel 提供的命令行工具基於 symfony.console 實現,功能強大,集成了各類項目管理、自動生成代碼的功能。網絡
PHP5.3 以後支持了相似 Java 的 jar 包,名爲 phar。用來將多個 PHP 文件打包爲一個文件。這個特性使得 PHP 也能夠像 Java 同樣方便地實現應用程序打包和組件化。一個應用程序能夠打成一個 Phar 包,直接放到
PHP-FPM 中運行。配合 Swoole ,能夠在命令行下執行 php server.phar
一鍵啓動服務器。PHP 的代碼包能夠用 Phar 打包成組件,放到 Swoole 的服務器容器中去加載執行。架構
任何技術有優勢就有缺點,PHP 做爲一門動態腳本語言,優勢是開發方便效率高。缺點就是性能差。在密集運算的場景下比 C 、 C++ 相差幾十倍甚至上百倍。另外 PHP 不能夠直接操做底層,須要依賴擴展庫來提供 API 實現。PHP 程序員能夠學習一門靜態編譯語言做爲補充實現動靜互補,C/C++/Go 都是不錯的選擇。並且靜態語言的編程體驗與動態語言徹底不一樣,學習過程可讓你獲得更大的提高。
掌握 C/C++ 語言後,還能夠閱讀 PHP 、 Swoole 、 Nginx 、Redis 、 Linux內核 等開源軟件的源碼,瞭解其底層運行原理。
如今最新版本的Swoole提供了C++擴展模塊的支持,封裝了Zend API,用C++操做PHP變得很簡單,能夠用C++實現PHP擴展函數和類。
做爲 Web 前端新一代標準,HTML5 將來前景很是廣闊,市場需求量很是大。從 PC 網站、B/S 企業軟件、移動端網頁、APP,這些領域都在擁抱 HTML5,掌握了 HTML5 才能在下一波互聯網技術大潮中存活下來。
PHP 程序員除了寫後臺程序以外,還有很大一部分工做在展示層,和瀏覽器前端打交道。2017 年你還在用 jQuery 操做 DOM 實現界面渲染嗎?已經徹底 out 了。如今用 Vue.js 能夠很是方便地實現數據和 DOM 元素的綁定。經過 Ajax 請求後臺接口返回數據後,更新前端數據自動實現界面渲染。2017 年再不學 Vue 就晚了。
若是你不光要寫 Web 程序,同時還但願兼顧 Android 、IOS 、PC 客戶端等平臺,React Native 是一個不錯的選擇。
互聯網的將來屬於人工智能,若是你還不瞭解機器學習、深度學習、人工智能這些概念,那你須要儘快學習瞭解一下。如今互聯網巨頭們都在佈局人工智能,包括 Google 、 Facebook 、微軟、亞馬遜 和國內的百度。雖然如今還處於科學研究的階段,但將來互聯網的各個領域都會應用到人工智能,包括自動駕駛、大數據分析、網絡遊戲、圖像識別、語言處理等。固然如今普通的工程師可能還沒法參與到人工智能產品中,但至少應該理解深度學習/人工智能的基本概念和原理。
原文:https://segmentfault.com/a/1190000008888700