互聯網與開源帶來的好處就是,你碰見的問題別人都碰見過,你想要的解決方案別人都給出了。可是那麼多的開源產品,到底該怎樣去選擇與甄別是否適合本身的項目,這裏推薦一些本身開發中經常使用的庫以及開發工具,每個類只會推薦一個,免去你選擇的痛苦。html
Laravel 是首推的 PHP 開發框架,用它官網的介紹就是「爲 Web 藝術家創造的 PHP 框架」。Laravel 框架的底層代碼都是跟進時代潮流的,用的都是最新的技術。並且它的學習門檻雖然高,但倒是督促我的進步的好工具。優雅的路由、強大的 IOC 容器、可拓展的服務提供者、隊列、緩存、通知、事件、廣播等等你在開發一個大型應用中可能用到的都給你作好了,還有全文搜索引擎、支付解決方案、社會化登陸等等,Laravel 基本上是 PHP 上的劃時代框架。小程序
網絡通訊相比與傳統的 Web 應用,它會更加的偏像底層一些,對開發者的基礎知識要求會更高。這裏首推 Swoole 這個異步網絡通訊引擎。用他官網的話來介紹就是:緩存
使 PHP 開發人員能夠編寫高性能的異步併發 TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole 能夠普遍應用於互聯網、移動通訊、企業軟件、雲計算、網絡遊戲、物聯網(IOT)、車聯網、智能家居等領域。
它雖然要求開發者要懂得操做系統、網絡、進程的知識,可是實際上很好上手,經過 Swoole 開發一個 WebSocket 服務器很簡單,有機會寫一篇基於 Swoole 的微信掃碼登陸的實現。服務器
PHP 在引入了命名空間後,在生態中 Composer 就是最早進的依賴管理方案。相比於 5.3 版本以前的使用 require 來包含文件,它確實是增長了學習的成本,可是帶來的效率倒是無限的。想象一下傳統的經過引入源代碼包,要先下載,required 一堆的文件;有了 Composer 以後,一行命令便可搞定,並且還解決了後期的升級問題。微信
網絡上充斥着很是多的代碼部署和持續集成工具,好比 Jenkins、Travis CI、瓦力部署等等各類的工具,都有一個共同的問題就是學習成本,拿到手根本不知道該怎麼去入手。這裏推薦一個基於 PHP 開發的部署工具 Deployer,它的優勢就是使用簡單上手快、支持回滾、原子發佈,而且支持。並且源碼量也很少,不懂的地方能夠很方便的去閱讀源碼來調試。網絡
網絡請求可能在開發中用的很少,可是有用到的話本身寫倒是很是的繁瑣。這裏首選推薦 Guzzle 這一個網絡請求庫,它的語法很是簡潔,並且通過了這麼多年的發展,代碼很是穩定。不只支持常見的 GET、POST、PUT、DELETE 等請求以外,還支持 OPTIONS、HEADER、PATCH 等請求,並且支持並行化調用,還能夠經過中間件增長對重試機制的支持。微信開發
現代化的 Web 引用開發中,會很常常用到隊列或者以 CLI 方式運行的應用,而這種應用一旦進程掛了那麼服務就中斷了,因此頗有必要一個進程守護工具來把掛掉的進程從新拉起來。這裏推薦 Supervisor 這個基於 Python 開發的工具庫,Supervisor 經過簡單的 INI 風格的配置文件集中的管理進程,經過操做系統信號來監聽進程的存活狀態,支持簡單的事件通知協議,兼容除了 Window 外的全部操做系統。架構
隊列經常使用在一些耗時的任務上,好比發送郵件短信、下載報表、處理圖片等等,目前市面上開源的隊列軟件很是多,大名鼎鼎的有 Kafka、ActiveMQ、RabbitMQ、Redis等等,能夠到 http://queues.io
上面去看看。其實對於一個常規的 Web 應用來講,這些重量級的通常都用不上,這裏推薦 Beanstalkd 這個隊列,它也是 Laravel 框架裏面推薦使用的。併發
日誌系統對於一個 Web 應用來講,能夠說是相當重要的。並且日誌的量通常量都很大,類型又多,這裏推薦使用 ELK 這個集中式的日誌架構,能夠查看一下我以前的文章:框架
其實作爬蟲最適合的語言仍是 Python,固然用 PHP 來開發也是有不少利器的。首推 QueryList 這個基於 PHP 開發的採集工具,簡單、 靈活、強大的PHP採集工具,讓採集更簡單一點。它的語法基本上和 jQuery 一致,能夠來看一段代碼:
//採集某頁面全部的圖片 $data = QueryList::get('http://cms.querylist.cc/bizhi/453.html')->find('img')->attrs('src'); //打印結果 print_r($data->all());
微信創造了一個新的時代,而後基於微信的應用基本上以及統治了傳統的 WAP 端應用了。微信公衆號的開發工具包首推 EasyWeChat ,這是一個非官方的開源工具庫,可是基本上涵蓋了微信開發中的方方面面,包括公衆號、企業微信、微信支付、開放平臺以及小程序。新版本 4.0 也是一個 LTS 的版本,不過新版本的文檔有些概念沒描述清楚,使用方法相比舊版本繁瑣了許多,這裏建議若是隻是公衆號開發的話仍是建議使用 3.0 版本的。
以上基本上涵蓋了一個常規應用開發中的方方面面,固然對於大型的分佈式應用來講可能還差不少。
最後來一波小福利,到公衆號後臺發送「oneui」,贈送一套好看的後臺模板。
歡迎關個人我的公衆號:左手代碼