
La nouvelle version de PHP, prévue pour novembre, approche. Dans l'un des articles précédents, nous avons écrit à propos de ce qui est nouveau dans PHP 8, et un article séparé a été consacré au compilateur JIT, qui sera finalement ajouté officiellement en tant que fonctionnalité.
Voici une interview avec des programmeurs PHP de Droptica qui programment en PHP depuis de nombreuses années et qui savent très bien comment tirer parti de ce langage pour offrir aux clients autant d'avantages que possible lors de la création de leurs sites web.
Depuis combien d'années travaillez-vous avec PHP ?
Sebastian Rogala : Professionnellement - depuis la fin de 2013, ce qui fait presque 7 ans maintenant.
Damian Skiba : Je travaille comme programmeur PHP depuis 9 ans.
Mariusz Andrzejewski : Dans les technologies web - depuis 10 ans, dont 7 ans consacrés à la programmation en PHP.
Quels sont, selon vous, les plus grands avantages de la programmation en PHP ?
Sebastian Rogala : La flexibilité du code écrit, ainsi que le fait qu'il soit actuellement en plein développement rapide et il ne semble pas que ce développement va ralentir de sitôt.
Damian Skiba : La stabilité d'application en PHP. La grande communauté.
Mariusz Andrzejewski : La richesse de la syntaxe et les capacités du langage permettent d'écrire du code statique comme plus dynamique. Ce qui est également important pour moi, c'est le développement actif du langage et de la communauté qui se concentre sur des solutions de plus en plus réfléchies à chaque nouvelle version.
Qu'est-ce qui rend PHP compétitif par rapport aux autres langages de programmation selon vous ?
Sebastian Rogala : Je ne pense pas que PHP soit la solution miracle qui peut être utilisée pour tout et conviendra à n'importe quel projet. L'avantage est certainement le seuil d'entrée relativement bas pour écrire des applications. La grande majorité des hébergeurs web proposent également un serveur PHP immédiatement après l'achat de leurs services, et nombre d'entre eux proposent également des installateurs prêts à l'emploi, tels que : Drupal, WordPress ou Joomla. Je pense qu'il a un avantage certain parmi les solutions existantes et habituellement gratuites pour la plupart des besoins de base, tels qu'un blog ou une boutique en ligne, et avec les systèmes dédiés, il offre des composants bien écrits et testés, que nous pouvons, dans de nombreux cas, ajouter comme des pièces d'un puzzle.
Damian Skiba : PHP est un langage dédié au web. Il a été créé dans cette optique, contrairement à de nombreux autres langages qui ont été créés comme des langages à usage général.
Mariusz Andrzejewski : En raison de nombreuses années de développement et d'activité, un énorme nombre de bibliothèques prêtes à l'emploi ou de plateformes telles que les CMS populaires : WordPress, Drupal, ont déjà été écrits pour PHP, dont même un programmeur débutant peut pleinement bénéficier.
Pas moins de 82% des sites web sont basés sur PHP. Quels sont, selon vous, les plus grands avantages pour les clients lors de la création d'un site web sur PHP ?
Sebastian Rogala : Je pense qu'une part aussi importante vient précisément de ces systèmes prêts à l'emploi, tels que les blogs ou le commerce électronique. Si le client commence tout juste son aventure avec, par exemple, une boutique en ligne, il n'est pas nécessaire d'employer des solutions commerciales. Et même si l'ampleur du projet est immense, PHP offre ses propres solutions, telles que Magento. De plus, les systèmes de gestion de contenu, tels que les Drupal ou WordPress susmentionnés, sont des solutions prêtes à l'emploi que nous utilisons dans le cadre du développement PHP en coopération avec nos clients.
Damian Skiba : Il est très facile de passer d'autres langages, par exemple C, C++, à PHP - grâce à cela, de nombreuses pages ont été créées sur PHP. Par exemple, la première version de Facebook est PHP.
Mariusz Andrzejewski : PHP a été créé à une époque où il n'y avait pas beaucoup de solutions sensées sur le marché, d'où sa popularité rapide en tant que langage de serveur le plus fréquemment choisi et, paradoxalement, cette popularité est son fondement encore aujourd'hui. Grâce à son utilisation généralisée, un plus grand nombre de programmeurs sont disponibles sur le marché du travail, ce qui rend beaucoup plus facile la constitution d'une équipe de projet ou l'embauche d'une équipe dédiée de programmeurs.
Quel a été le projet le plus ambitieux que vous ayez réalisé en PHP ?
Sebastian Rogala : Un bon exemple est le système d'étiquettes - statuts. Cela consistait à donner au client la possibilité de définir leurs propres règles pour "ajouter un statut" et "supprimer un statut" de la commande à "l'ajout de statut" ou "la suppression de statut" de la commande. Cela peut sembler simple à première vue, mais cela nécessitait de réfléchir au flux des données, car il était très facile de se bloquer ou de boucler. Il était également nécessaire de fournir un mécanisme de configuration approprié afin que l'utilisateur puisse définir indépendamment les statuts et les actions qui devaient se produire.
Damian Skiba : Écrire un serveur en Node.JS qui envoyait des messages à des centaines de clients connectés. Et tout le support de ce serveur a été développé en Drupal. Des cas ont été pris en compte où, si l'un des conteneurs Docker s'éteint, il doit être redémarré. Et les conteneurs avec Node.JS et Drupal doivent être synchronisés pour savoir ce qui a déjà été envoyé aux clients et ce qui est en attente dans la file d'attente.
Mariusz Andrzejewski : L'un des projets les plus intéressants et les plus complexes avec lequel j'ai dû traiter est la participation à la création d'une plateforme de création de sites, c'est-à-dire une plateforme de création de nouveaux portails web. La multitude de solutions possibles, la flexibilité de chacun des composants, ainsi que l'ouverture aux changements tout en maintenant la stabilité des portails web déjà existants ont été les plus grands défis qui nous ont été posés et qui ont été réalisés.
À quoi, à votre avis, le client doit-il faire attention s'il veut créer une page web PHP à partir de zéro, et lorsqu'il veut étendre celle existante ?
Sebastian Rogala : Dans les deux cas, la question de base est "quelle est la taille prévue du système et est-il prévu de le développer ?" Si nous créons une nouvelle page, alors pour quelque chose de pas trop compliqué et sans plans de développement à long terme, un des frameworks populaires et l'utilisation de MVC classique ou Drupal suffira. Pour les projets de plus grande envergure, d'autres aspects doivent être pris en compte - tels que l'architecture du système au sens large. L'une des approches les plus populaires consiste à utiliser Symfony avec une architecture hexagonale et à se diriger vers les microservices, bien qu'il soit préférable de créer un monolithe modulaire.
Damian Skiba : S'il s'agit d'une grande modification, alors beaucoup de la logique existante devrait être modifiée. Si c'est Drupal, il y a beaucoup de marge de manœuvre pour ajouter cette fonctionnalité. Et si ce n'est pas Drupal, ce serait une bonne idée de le choisir et de réécrire toute la logique existante en services Drupal, puis d'ajouter la nouvelle fonctionnalité.
Mariusz Andrzejewski : Comme pour tout, les personnes sont les plus importantes. La multitude de programmeurs disponibles sur le marché ne se traduit pas toujours par de la qualité. Tout d'abord, il est utile de constituer une équipe de programmeurs et d'architectes expérimentés qui pourront traduire la logique commerciale en la meilleure solution, en choisissant la technologie la plus appropriée pour une solution spécifique.
Pourquoi pensez-vous que Drupal attire plus de spécialistes PHP de haut niveau que tout autre CMS ?
Sebastian Rogala : Je pense que c'est parce que Drupal offre les plus grandes possibilités en matière de conception et de création d'applications par rapport aux autres CMS. Il a également un seuil d'entrée plus élevé, ce qui signifie qu'il est bon d'avoir une certaine expérience en programmation pour pouvoir naviguer dans Drupal et écrire des solutions efficaces.
Damian Skiba : À mon avis, c'est à cause de Drupal 8, qui a été écrit en Symfony.
Mariusz Andrzejewski : En tant que membre de l'équipe développeurs Drupal, je pense que le CMS est complet et utilise les solides fondations du développement Symfony. Il est très difficile de contourner certaines choses de manière non standard, donc la plupart des programmeurs expérimentés qui n'ont pas peur de travailler avec la documentation et qui sont capables de comprendre et de suivre la logique de l'ensemble du code de l'application s'en sortent mieux.
Quel framework PHP utilisez-vous le plus et quels sont ses avantages ?
Sebastian Rogala : J'ai récemment travaillé beaucoup avec Laravel, mais j'ai surtout travaillé sur Zend Framework, maintenant appelé Laminas. À mon avis, c'est un framework "sœur" de Symfony. Les principaux avantages sont la modularité et l'utilisation de la plupart des "bons" modèles de conception. L'approche "configuration sur convention" a également ses aspects positifs, car elle nous offre une grande flexibilité pour fournir des solutions adaptées. Grâce à cela, par exemple, nous n'avons pas besoin de nous en tenir au modèle architectural MVC, mais nous avons également la liberté d'utiliser Hexagonal ou CQRS.
Damian Skiba : Symfony. Pour moi, l'avantage est l'injection de dépendances et la rapidité d'exécution.
Mariusz Andrzejewski : En raison de mon attachement fort à Drupal, je trouve que le framework Symfony est le plus proche de moi. Tant Drupal que Symfony sont le plus souvent utilisés par des professionnels, et une grande communauté de programmeurs travaille sur leur développement et leur popularisation.
Si vous deviez convaincre un programmeur novice, quel argument utiliseriez-vous pour le faire commencer à apprendre PHP ?
Sebastian Rogala : Tout d'abord, je ne pense pas qu'aucun outil (et c'est un langage de programmation) soit bon pour chaque situation. D'un autre côté, si l'intérêt et la direction d'une personne sont liés au développement d'applications web au sens large, je pense qu'un bon argument est un faible seuil d'entrée et la possibilité de commencer à travailler et de voir les résultats plus rapidement que dans d'autres langages "serveur". Un autre point est la flexibilité de PHP et une très grande communauté qui offre de nombreuses solutions prêtes à l'emploi. Je pense que ce sont de bons arguments pour un programmeur débutant.
Damian Skiba : Faible seuil d'entrée. Si vous connaissez un langage de programmation depuis le lycée ou l'université, vous pouvez apprendre PHP sans trop de problèmes.
Mariusz Andrzejewski : Facilité d'apprentissage, une grande communauté active se traduisant par une base de connaissances étendue disponible sur Internet. Les solutions prêtes à l'emploi abaisseront encore plus le soi-disant "seuil d'entrée".
Qu'est-ce qui sera, selon vous, le plus précieux dans la nouvelle version de PHP ?
Sebastian Rogala : Types d'union, arguments nommés, expressions de correspondance. Il y a pas mal d'éléments intéressants à mentionner.
Damian Skiba : JIT, grâce auquel PHP fonctionnera encore plus rapidement.
Mariusz Andrzejewski : De nombreux programmeurs PHP aiment sa nature dynamique. Cependant, je suis satisfait des changements vers un plus grand contrôle sur l'état de l'application, y compris le contrôle des erreurs affichées, qui seront réorganisées avec la dernière version du langage.
Résumé
Nous attendons impatiemment la sortie de PHP 8. Nous examinerons attentivement les solutions et vérifierons notre agence pour voir comment les nouvelles fonctionnalités se traduisent dans le travail de développement quotidien.