作者 | Danny van Kooten,Web 开拓者,ibericode 创始人,WordPress 插件 MailChimp、HTML Forms、Boxzilla 的作者。
译者 | 弯月
责编 | 郭芮

出品 | CSDN(ID:CSDNnews)
以下为译文:
还记得我放弃Laravel转而利用Golang吗(https://dannyvankooten.com/laravel-to-golang/)?嗯,在利用了Go两年之后,我们的运用程序又转回PHP了。
为什么?!
你已经说过PHP可能是个很糟糕的决定,但现在又要在上面花更多的韶光?......嗯,实际上有好几个缘故原由。
PHP的改进
过去三年PHP改进了许多:
增加了标量类型声明https://secure.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration增加了返回值类型声明https://secure.php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration增加了多catch非常https://wiki.php.net/rfc/multiple-catch以及非常精良的性能改进http://www.zend.com/en/resources/php7_infographicSymfony4改变了天下
我很喜好Symfony的兼容性承诺(https://symfony.com/doc/current/contributing/code/bc.html)以及他们13年来为之做出的努力。
以是,当Symfony4(https://symfony.com/4)发布,我听到了这些好,就去考试测验了一下,用它实现了一个小的运用程序。
结论是:太棒了,真的太棒了。
Symfony4在简化安装上花费了许多心思,启动一个Symfony运用程序可以更方便快捷,须要的配置事情更少。现在它已经赶超了Laravel的快速开拓,同时它还鼓励许多很不错的开拓实践,避免开拓时落入自己的陷阱。而且它的性能非常好(http://www.phpbenchmarks.com/en/)。
将旧的Lavarel运用程序移植到Symfony很随意马虎,只须要重新实现一些用Go写的功能,规复之前做的一些便捷办法(大多数是由于Laravel的全局赞助功能导致的)即可。
一个非常好的意外收成是我可以很大程度长进步开拓中的测试覆盖率。两遍乃至三各处反复编写同一个运用程序让我对其非常熟习。
Symfony的调试工具栏也非常棒。它能显示从要求到相应过程中发生的统统,显示出统统警告和不推举利用的警告,还有内置的性能工具,可以很随意马虎地对代码进行性能测试。
在学习了Symfony的Form组件(https://symfony.com/doc/current/forms.html)之后,我深深地爱上了它。设计一个可访问、可重用的表单变得极其随意马虎,还能在提交时验证表单内容,并且安全地根据表单数据添补PHP工具。
$user = $this->getUser();$form = $this->createForm(UserBillingInfoType::class, $user) ->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) { // $user is already populated with the form values at this point // it's valid, so we can update the database and redirect the user now}
另一个改进我们的运用程序的软件是Doctrine。模型(实体)是普通的PHP类,关系(关联)是普通的引用,使得逻辑测试非常随意马虎,无需再考虑数据库实现。
$user = new User();$user->addLicense(new License());$manager->persist($user); // both user and its license will be saved
在Doctrine中,默认所有操作都包裹在SQL事务中。在我看来这一点非常主要,它担保了原子性。而在Eloquent中实现这一点须要大量事情。
Go依然很强大
实话实说,Go非常精良。它非常大略,能实现PHP绝无可能达到的性能。如果我们须要小型的API或须要高吞吐量的功能,我依然会选择Go。
但我们的事情室须要大量的做事器端渲染的东西。只管Go可以做到这一点(过去两年已经证明了),但利用PHP实现会更随意马虎掩护。
做出精确的业务决策
还有一个没说的缘故原由是,在过去几年,有好几家公司联系我,希望收购我们的一个产品。
但在听说我们的技能利用的是Golang时,他们感到有点惊异。他们见告我,他们更希望利用PHP,由于我们大部分产品利用的都是PHP。这一点我没法责备他们。
原文:https://dannyvankooten.com/from-go-back-to-php-again/
本文为 CSDN 翻译,如需转载,请注明来源出处。