这就是现代php该有的样子(一)

本文来自medium----原文链接; 欢迎作客我们的php&Laravel学习群:109256050

这个标题是不是很自负?没错!尽管我已经使用php工作很多年了,我仍然不能明确的说出这项工作的最佳实践方式和最好的工具,但接下来我要开始试着这样做。

我看到开发者使用php进行开发的工作方式发生了真正的变化,不仅是这门语言随着版本的更新和改进明显的变得越来越成熟和健壮,而且围绕它的整个生态系统正在发生改变。

开发者发布了很多新的工具、第三方库、框架和文章,定义了很多设计模式来使代码更加的优雅和易于理解。一些人在想办法让工作(和你作为开发者的生活)更有效率、简洁和有趣

我并不在新趋势的早期就开始拥抱它们,实际上,我只会采用那些当我确定它们背后有社区支持并且我真的觉得它会提升我的工作的新工具。我经常干的事是努力让我的代码符合最佳实践。

基于这些缘由,我花时间使用像Composer和PHPUnit这样的工具。大概在一年前,我向所有这些闪亮的新事物敞开了我的心。

首先是PSR,然后是Composer、PHPUnit、Travis-ci和一些其他的库和极好的工具。我甚至开始使用IDE(Vim FTW,与Xdebug集成的PHPStrom是一个稳健开发流的必须工具)!

什么是现代?

网页上充斥着大量的关于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_dumpsprint_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并阅读它的文档。

正确使用命令行接口

我非常喜欢使用CLI接口快速地尝试想法。对我来说,一个伟大的工具是IPython REPL。它可以帮助你补全你的代码,让你轻松定义函数,方便使用文档和其他一些令人惊讶的功能。遗憾的是这个工具是Python的,而不是PHP的。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值