本文來自medium----原文連接; 歡迎做客咱們的php&Laravel學習羣:109256050php
這個標題是否是很自負?沒錯!儘管我已經使用php工做不少年了,我仍然不能明確的說出這項工做的最佳實踐方式和最好的工具,但接下來我要開始試着這樣作。前端
我看到開發者使用php進行開發的工做方式發生了真正的變化,不只是這門語言隨着版本的更新和改進明顯的變得愈來愈成熟和健壯,並且圍繞它的整個生態系統正在發生改變。sql
開發者發佈了不少新的工具、第三方庫、框架和文章,定義了不少設計模式來使代碼更加的優雅和易於理解。一些人在想辦法讓工做(和你做爲開發者的生活)更有效率、簡潔和有趣設計模式
我並不在新趨勢的早期就開始擁抱它們,實際上,我只會採用那些當我肯定它們背後有社區支持而且我真的以爲它會提高個人工做的新工具。我常常乾的事是努力讓個人代碼符合最佳實踐。bash
基於這些原因,我花時間使用像Composer和PHPUnit這樣的工具。大概在一年前,我向全部這些閃亮的新事物敞開了個人心。php7
首先是PSR,而後是Composer、PHPUnit、Travis-ci和一些其餘的庫和極好的工具。我甚至開始使用IDE(Vim FTW,與Xdebug集成的PHPStrom是一個穩健開發流的必須工具)!composer
網頁上充斥着大量的關於PHP多麼很差、若是你不得不使用PHP代碼工做你的生活將多糟糕、這個語言多麼的醜和其餘的你能想到的文章!框架
若是你繼續與之前遺留代碼一塊兒工做,也許你的生活不會那麼好,可是若是你有機會在一個新項目上工做,而且可以使用全部的新工具,你將看到我要討論的新PHP。編輯器
我天天都有一些PHP工做上的問題,可是咱們不能對語言、社區和生態系統發生的變化視而不見。前面還有很長的路要走,但PHP領域已經成熟了。函數
我開始爲我工做的公司建立內部API的SDK,做爲一個寵物項目,並決定遵循最佳實踐。他們中的大多數我已經在作了,可是我在作一些事情上作了一些改變。這些變化和我去年學到的都是本文的主題,我稱之爲現代PHP。
我開始爲我工做的公司建立內部API的SDK,僅做爲一個興趣項目並決定遵循最佳實踐。他們中的大多數我已經在作了,可是我在作一些事情的方式上作了一些改變。這些變化和我去年學到的知識都是本文的主題,我稱之爲現代PHP。
正如我所說,我是這IDE的新手,phpStorm是一個很是很是偉大的軟件,我對它一見傾心。這是個人第一個也是惟一的IDE。這是我第一次嘗試IDE,我甚至不須要嘗試任何其餘IDE。
與XDebug的結合很是的完美,PHP名稱空間解析,集成Composer,集成GIT,自動補全,代碼生成,代碼重構等等。
你不是必須使用IDE,實際上,這一點徹底是我的愛好。你應該使用任何適合您的需求的工具- Vim,Atom,Emacs,Bracket,NetBeans,phpStorm,Eclipse,等等。這裏有兩個要點是生產力和效率。您的IDE /文本編輯器必須至少在這兩點上幫助您。
對我來講,集成調試器是一個很重要的功能。爲大項目編寫代碼(實際上也適用於小項目),你必須使用一個合用的調試器。讓咱們忘記那些var_dumps
和print_rs
。你須要在運行時將這些變量輸出出來,分析跟蹤棧,設置斷點。這些東西是必不可少的並使開發和重構更加容易。
我甚至不知道有其餘的選擇,XDebug有你須要的一切。你有幾分鐘時間嗎?若是你還沒這麼作,花一點時間來安裝Xdebug,整合進你的IDE或文本編輯器。開始使用正確的工具調試代碼。
GitHub是另外一個我想讓你多加留意的工具。這裏的重點是整合。
有幾個工具整合與GitHub上你應該開始使用他們。這些工具能夠在持續的集成過程當中生成度量、運行測試、爲您運行做業以及在工做流程中作各類事情。整合是你開始使用GitHub的一個很好的理由。
現代PHP生態系統的另外一個要點是依賴管理,而Composer就是作這個工做的工具。
Composer已經5歲了,但在我看來,大量的功能在近幾年才採用。也許是由於我不是一個早期擁抱着或者由於PHP開發者都不肯改變。
這個工具提供了一個前端Packagist,它是一個PHP包庫,由php庫、項目和工具組成,它們的源代碼存儲在GitHub(或相似的其餘地方好比bitbucket)。
我在本文中討論的全部庫,或者多是您的其中一個項目,能夠用簡單的下面方法添加到項目中。
$ composer require package_vendor/package_name
若是你不知道某個包的發行方,你能夠經過檢索包來找到和安裝合適的包
$ composer search package_name
若是僅用來管理依賴,Composer會是一個偉大的工具,可是它還作了不少其餘的事。花點時間來安裝Composer並閱讀它的文檔。
在PHP世界中,咱們有一種叫作「交互模式」的東西,能夠經過終端訪問,鍵入下面內容:
$ php -a
Interactive mode enabled
php >
複製代碼
此時,您處於交互模式,能夠開始測試某些東西,它工做了,可是這個工具太不直觀了,應爲我知道IPython是怎麼工做的,因此我嘗試了不少次,最後仍是放棄使用它了。
幸運的是有一個很酷的新的CLI(命令行界面)和它的名字是Psysh。psysh是一個了不得的工具,充滿了有趣的功能,可使用Composer全局或者本地安裝。
對於我來講psysh最好的特徵是內嵌文檔。訪問一個PHP函數的文檔不須要轉去php.net很是方便。缺點是,在功能徹底發揮以前,您須要作一些額外的配置。
安裝後,輸入如下命令(我用Debian這裏,這可能不適合全部人)來讓它正常工做
$ apt-get install php7.1-sqlite3
$ mkdir /usr/local/share/psysh
$ wget http://psysh.org/manual/en/php_manual.sqlite -o /usr/local/share/psysh/php_manual.sqlite
複製代碼
第一條命令不是必須的,若是你已經安裝來Sqlite你能夠跳過這步。第二條命令建立來一個保存文檔的目錄,第三條命令下載文檔並保存到第二步建立的目錄中,注意全部的命令必須以root 用戶執行。
而後你能夠這樣:
去Psysh官網學習更多的關於這個工具的知識