本文来自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官网学习更多的关于这个工具的知识