Le PHP moderne est beau et productif

Il y a près de 8 mois, je suis passé de projets python / java à un projet sur php (on m'a proposé des conditions qui seraient idiotes à refuser), et je n'ai soudainement pas ressenti la douleur et le désespoir que prêchaient les anciens développeurs de PCP. Et voici ce que j'en pense.



C'est quoi


Pour commencer, permettez-moi de vous raconter mon expérience de développement et l'expérience des outils dans d'autres langues, afin que vous compreniez à quoi je compare.

Python En ce qui concerne les projets en python (le plus souvent dans Django), nous obtenons une plate-forme qui vous permet de créer facilement et simplement des fonctionnalités, de créer des serveurs rest-api, d'effectuer un partage de système, etc. La logique du cadre est très claire et simple. Même un développeur complètement vert peut, en quelques heures, noter un petit blozik avec un panneau d'administration. De plus, la documentation Django est l'une des plus haute qualité que j'ai vu. À tout cela, du sucre de syntaxe python est ajouté, ce qui aide à implémenter certains modèles de manière assez élégante. Si nous passons de Django à Tornado / aiohtpp / Twisted / Flask, etc., alors la douleur commence, car le code en eux est beaucoup plus désagréable que dans Django.

Java Si nous parlons de Java, par exemple, Spring, alors ce sont des systèmes qui causent des douleurs anales car ils vous obligent à configurer tout ce qui peut être configuré. Le seuil d'entrée est très élevé, un grand nombre de nuances que vous devez garder à l'esprit, plus la syntaxe Java elle-même vous oblige à écrire des constructions très volumineuses (vrai pour tous les projets dans le sixième Java). Mais en récompense, nous obtenons des systèmes très fiables et flexibles auxquels plus d'une douzaine de programmeurs peuvent survivre avec des mains très médiocres.

Quant à PHP


Avant de commencer le travail, j'ai lu un livre: Matt Zandra - Objets PHP, modèles et techniques de programmation, et je me suis assuré que PHP, en général, sans aucune douleur particulière, vous permet d'implémenter certains modèles de développement. C'est-à-dire en PHP, vous pouvez écrire le code correct, qui ne diffère pas beaucoup de ce que nous obtenons en Python / Java.

Zend Framework 1


Le projet de service interne m'a rencontré Zend Framework 1 en PHP 5.3. Je dois dire tout de suite que de nombreuses décisions sur cette plate-forme semblent très controversées, et le langage PHP 5.3 a des restrictions sur l'établissement du type de retour des fonctions (méthodes), cependant, vous comprenez rapidement où se trouve, comment ce qui est casté et comment ce qui est formé.

Par exemple, si nous considérons les formulaires Zend, ils font pratiquement le même travail que les formes classiques de Django. La syntaxe de construction des requêtes dans DB Zend DB Table ne provoque aucun négatif, et cela fonctionne très évidemment.

C'est-à-dire littéralement en 2-3 jours, j'ai pu comprendre pleinement et j'ai commencé à écrire du code qui faisait ce qui était exigé de manière complètement adéquate.

Symfony 3.4


Après 3 mois, j'ai été transféré vers un autre projet sur Symfony 3.4 et PHP 7.1 - et ce n'est qu'une bombe. Franchement, j'ai eu le sentiment qu'ils m'ont donné des stylos Django, où ils ont ajouté la fiabilité du système de Java.

  • Template engine Twig - un clone complet de Jinja de Django.
  • Doctrine ORM - un analogue d'Hibernate
  • Annotations Symfony - un analogue des décorateurs de Python
  • Câblage automatique Symfony - encore plus évident que DI au printemps
  • Configurations évidentes du secret
  • Construction pratique des clients rest-APi.
  • Orthographe pratique d'un travail pour la couronne (dans ce cas, elles sont appelées commandes de console dans la symphonie)
  • Débogueur et assistant de console pratiques.

De plus, le langage PHP 7.1 lui-même permettait déjà de spécifier des types de retour, ce qui rend les hooks multi-exceptions et autres nishtyaki. Et disons simplement que tout inconfort lié à l'utilisation de l'outil a disparu. Et dans certains endroits, tout fonctionne encore plus facilement.

Le seul gros inconvénient est le manque de documentation. C'est-à-dire les cas les plus simples sont indiqués dans la documentation, et tout ce qui est plus intéressant nécessite déjà de creuser dans les sources symfony, eh bien, le cadre n'est étonnamment pas aussi populaire dans Google que nous le souhaiterions.

Par conséquent, je ne comprends absolument pas pourquoi les gens crachent vers PHP quand cela fonctionne et est plutôt cool.

Y a-t-il une différence


Je veux également noter un tel point qu'après avoir travaillé sur 3-4 frameworks Web modernes, vous comprenez que tout fonctionne de la même manière partout. Les noms et implémentations diffèrent, et les concepts généraux sont de 1 à 1. Par conséquent, si vous avez travaillé sur Django, vous pouvez alors transférer vers php Symfony / .Net CORE MVC - vous pouvez facilement le faire en quelques mois.

PS: si je suis toujours aveugle et stupide, veuillez commenter.

Source: https://habr.com/ru/post/fr445380/


All Articles