现代PHP美丽而高效

大约8个月前,我从python / java项目转移到了php上的项目(被提供的条件会愚蠢地拒绝),而我突然没有感到前PCP开发人员鼓吹的痛苦和绝望。 这就是我对此的看法。



什么是什么


首先,让我告诉您我的开发经验以及其他语言的工具经验,以便您了解我正在与之进行比较。

巨蟒 当涉及到python项目(最常见于Django)时,我们提供了一个平台,使您可以非常方便,简单地增加功能,构建rest-api服务器,执行系统分片等等。 该框架的逻辑非常清晰和直接。 即使是完全绿色的开发人员,也可以在几个小时内用管理面板记下一个小字样。 另外,Django文档是我见过的最高质量的文档之一。 为此,添加了python语法糖,这有助于非常优雅地实现某些模式。 如果我们从Django迁移到Tornado / aiohtpp / Twisted / Flask等,那么痛苦就开始了,因为其中的代码比Django中的代码更令人讨厌。

爪哇 如果我们谈论的是Java(例如Spring),那么这些系统会引起肛门疼痛,因为它们迫使您配置所有可以配置的东西。 入门门槛很高,您需要牢记许多细微差别,再加上Java语法本身迫使您编写非常庞大的结构(对于Java 6中的所有项目都是如此)。 但是,作为奖励,我们获得了非常可靠和灵活的系统,十几名程序员可以用平庸的手生存下来。

至于PHP


在开始工作之前,我读了一本书:Matt Zandra-PHP对象,模板和编程技术,并确保从总体上来说,PHP可以让您实现某些开发模式,而不会遇到任何麻烦。 即 在PHP中,您可以编写正确的代码,这与我们在Python / Java中获得的代码没有太大区别。

Zend框架1


内部服务项目在PHP 5.3中遇到了Zend Framework 1。 我必须马上说,这个平台上的许多决定似乎都引起争议,PHP 5.3语言在建立函数返回类型(方法)方面受到限制,但是,您很快就会了解什么在哪里,如何转换以及如何形成。

例如,如果我们正在考虑Zend形式,那么它们实际上所做的工作与Django中的经典形式相同。 在DB Zend DB Table中构造查询的语法不会引起负面影响,并且显然很有效。

即 从字面上看,我在2-3天内就能够完全理解并开始编写可以完全满足其要求的代码。

Symfony的3.4


三个月后,我转到了另一个基于Symfony 3.4和PHP 7.1的项目-这只是一颗炸弹。 坦率地讲,他们给了我Django笔,他们在这里增加了Java系统的可靠性。

  • 模板引擎Twig-Django的Jinja的完整克隆。
  • 主义ORM-Hibernate的类似物
  • Symfony注释-Python装饰器的类似物
  • 自动装配Symfony-在春季比DI更明显
  • 明显的保密配置
  • Rest-APi客户的便捷构建。
  • 方便地为表冠拼写作业(在这种情况下,它们在交响乐中称为控制台命令)
  • 方便的调试器和控制台助手。

另外,PHP 7.1语言本身已经允许指定返回类型,制作多异常钩子和其他nishtyaki。 而且,我们只能说,使用该工具带来的任何不适都消失了。 在某些地方,一切工作都更加方便。

唯一的缺点是缺少文档。 即 文档中指出了最简单的情况,而且更有趣的所有内容都需要挖掘symfony源代码,而且令人惊讶的是,该框架在Google中并不如我们所愿受欢迎。

因此,我绝对不理解为什么人们在使用PHP时会吐口水,而且很酷。

有什么区别吗


我还想指出一点,在您研究了3-4个现代Web框架之后,您将了解到,所有地方的一切工作方式都相似。 名称和实现各不相同,一般概念是1到1。因此,可以说,如果您使用Django,则可以在几个月内毫不费力地将PHP Symfony / .Net CORE MVC转移。

PS:如果我仍然盲目而愚蠢,请发表评论。

Source: https://habr.com/ru/post/zh-CN445380/


All Articles