Maison >développement back-end >tutoriel php >Symfony dans Drupal 8
Si vous êtes un Drupaler, vous devez être conscient que Drupal 8 est en route. Ce que vous ne savez peut-être pas, c'est qu'il comprend quelques composants symfony importants. Travailler avec Drupal 8.x donnera aux Drupalers l'occasion de faire partie d'une courbe d'apprentissage massive et va les tenter d'en savoir plus sur Symfony. Dans cet article, nous discutons des composants Symfony qui ont été ajoutés à Drupal 8, couvrant certaines bibliothèques tierces en cours de route.
Avant d'entrer dans l'article réel, couvrons d'abord brièvement Symfony. Il s'agit d'un cadre d'application Web basé sur PHP qui suit l'architecture MVC. De plus, il s'agit d'un projet open source qui a été publié sous la licence du MIT. Veuillez vous assurer de ne pas le faire confondre avec Symfony CMS. Si vous souhaitez explorer le Framework Symfony plus en détail, consultez sa page wiki ou l'un des articles de point de site précédents à ce sujet.
Découvrez maintenant les composants Symfony qui sont mis en œuvre dans Drupal 8.
Voici les composants Symfony qui vont alimenter le noyau Drupal 8 dans une large mesure:
httpkernel et httpfoundation - ils sont responsables de la rationalisation du processus de conversion d'une demande en réponse à l'aide de EventDispatcher. Drupal 8 en cours de déplacement à Symfony a été motivé par Services Web et Content Core Initiative (WSCCI) dans un motif de transformation de Drupal d'un CMS de première classe à un de première classe de première classe REST Server avec des CM de première classe fonctionnant par-dessus. Cette initiative vise à permettre à Drupal d'utiliser les services Web pour offrir son contenu avec une complexité réduite; Compte tenu de cela comme une vision à long terme, Drupal sera plus flexible, robuste et facilement maintenable CMS.
EventDispatcher - implémente le modèle de médiateur (qui utilise l'encapsulation) de manière simple et efficace, en particulier lorsque l'héritage du code ne fonctionne pas, ce qui rend l'application très extensible. Il est plus efficace dans les situations où vous avez tendance à maintenir et / ou à refacter un programme composé d'un grand nombre de classes en raison du fait qu'il rend la communication entre les classes assez simple et facile.
Classloader - Fournit des outils que les classes Autoload et cache leur emplacement. PHP utilise le mécanisme de mise en état de mise en scène pour déléguer le chargement d'un fichier qui définit la classe dans des situations où vous référez une classe qui n'a pas été requise ou incluse. Symfony est livré avec des autoloaders comme le chargeur de classe PSR-0 et MapClassLoader. L'implémentation du composant Classloader rendra les développeurs de modules Drupal CareFree, en particulier lorsqu'il s'agit d'implémenter module_load_include et d'autres dépendances. De plus, il permet aux développeurs d'appeler faciles des classes pendant l'exécution.
YAML - Il analyse les cordes YAML et les convertit en tableaux PHP et vice versa. Ce format a été particulièrement conçu pour contenir des informations liées à la configuration, tout en étant aussi expressives que les fichiers XML et aussi lisibles que les fichiers INI. Il sert de composant intégral de CMI de Drupal (Configuration Management Initiative) qui permet à nos modules de définir initialement leurs paramètres de configuration par défaut et permet plus tard au Builder de site de remplacer le même dose et lorsque cela est instruit. Ce concept de CMI de Drupal 8 qui est alimenté par YAML est un remplacement des fonctionnalités du module Drupal contribué qui s'avère être un concept robuste en ce qui concerne la migration et le déploiement dans les environnements.
Routing - nous permet de charger tous les itinéraires et vide un correspondant ou un générateur d'URL spécifique à ces itinéraires. Cela signifie également qu'il mappe une demande HTTP à un ensemble de variables de configuration. En ce qui concerne les versions Drupal 8 et supérieures, nous définissons les routes de notre module dans un fichier de configuration YAML, chacun d'eux défini pour déclencher une action spécifique qui a été définie dans les classes de notre module.
Dépendance Injection - principalement utilisé pour normaliser et centraliser la façon dont les objets sont construits dans notre application. La composante de dépendance de Symfony a été incorporée dans Drupal 8 dans l'intention d'écrire du code de telle manière que les classes peuvent être réutilisées et testées par unité où applicables et souhaités.
Twig - Drupal 8 a adopté le moteur de modèle de brindille. Cela intéresse les themers qui ne penseront probablement plus jamais à aucune autre option aussi longtemps qu'ils travaillent sur des thèmes Drupal. Twig a été développé par Fabien Potencier , qui a également développé le projet Symfony, et a été réglé pour l'intégration dans Drupal 8.
Processus - Aide à exécuter des commandes dans les sous-processus à l'aide de l'interface de ligne de commande. Drupal 8 l'utilisera pour gérer toutes les activités de la ligne de commande de nature.
SÉRIALISER - Il est utilisé pour transformer les objets en un format spécifique (par exemple XML, YAML, JSON, etc.) et vice versa. Pour mieux le comprendre, regardons le schéma suivant que le composant Sérialiseur SEArializer suit:
De plus, nous pouvons l'utiliser pour accomplir un certain nombre de travaux, allant de la configuration au nœud et à la création d'entité qui doit être livrée par un point de terminaison de repos.
Validator - aide Drupal à valider les valeurs. Par exemple: validation de la soumission du formulaire, validation des entités au sein de Drupal, etc. . Traduction - fournit un ensemble standard d'outils pour charger des fichiers de traduction, générer des chaînes traduites en sortie et utiliser le résultat généré.
Composants tiers prêts à l'emploi
Asset - Un framework de gestion des actifs
Composer - Un outil spécialement conçu et développé pour
Gérer la dépendancegère les situations très efficacement dans lesquelles votre projet dépend d'un certain nombre de bibliothèques.
aborde les situations où il existe un concept de dépendance imbriqué parmi les bibliothèques. Par exemple; Votre projet dépend d'une bibliothèque (disons,
lib1dépend d'une autre bibliothèque (disons, lib2 ). Il est de la responsabilité du compositeur de choisir quelle version du package ou de la bibliothèque doit être installée, sauf si les versions cibler.
Doctrine - Un paquet d'outils à utiliser avec des enregistrements de base de données. Drupal 8 en utilise une partie appelée annotations qui expose des métadonnées supplémentaires à Drupal. Des efforts ont été faits pour présenter des fonctionnalités aussi délicates d'une manière assez facile et pratique, en particulier lors de la définition des types d'entités personnalisés. Si vous souhaitez explorer davantage comment la doctrine est censée être utilisée avec Drupal 8, nous vous recommandons de visiter la page de documentation.
Easyrdf - Une bibliothèque PHP qui a été utilisée avec Drupal 8 afin de faciliter la consommation et la production de RDF. Avec l'aide d'Easyrdf, Drupal 8 ajoute la capacité de produire des métadonnées dans le balisage d'une manière facile et pratique. Vous pouvez également visiter le site officiel d'Easyrdf pour en savoir plus.
Guzzle - Il s'agit d'un client et d'un framework PHP HTTP qui aide Drupal 8 à faire des demandes Web à l'aide d'appels de service Web basés sur REST. Cela rend les portails Web Drupal 8 plus efficaces en termes de gestion de différents types de services Web. Pour explorer plus loin sur Guzzle, nous vous recommandons de lire notre article précédent à ce sujet.
PHPUNIT - Utilisé dans Drupal 8 pour standardiser les tests unitaires à travers le noyau ainsi que pour aider les développeurs à écrire du code de plus grande qualité. PHPUnit garantit que tout code écrit dans Drupal 8 et dans tout module personnalisé incorporé dans les normes de l'industrie et fonctionne comme prévu tout au long de son cycle de vie. Vous pouvez garder un œil sur l'état actuel de l'incorporation de Phpunit dans Drupal 8 en allant ici.
PSR-3 Logging - un système de journalisation commun partagé par une application PHP entière. Les versions Drupal 7 et plus anciennes utilisent Watchdog () à cet effet. Le passage de la journalisation Drupal de Watchdog () à un cadre de journalisation PSR-3 a rendu Drupal 8 plus robuste et évolutif en termes de journalisation commune. Vous pouvez suivre l'état actuel de ce composant sur Switch Watchdog vers un cadre de journalisation PSR-3.
L'introduction de quelques composants Symfony a simplifié le travail avec Drupal 8. De plus, y compris quelques-uns des composants non symboliques ont ajouté de la valeur à Drupal 8 en termes de qualité, d'évolutivité et de performance, ce qui le rend encore plus robuste et maintenable.
Symfony est un ensemble de composants PHP réutilisables et un cadre PHP pour les projets Web. L'intégration de Symfony dans Drupal 8 offre plusieurs avantages. Premièrement, il améliore la vitesse et les performances des sites Web Drupal. Deuxièmement, il fournit un moyen structuré et standardisé de créer un site Web, ce qui permet aux développeurs de comprendre et de modifier le code. Enfin, Symfony a une communauté importante et active qui fournit des mises à jour régulières et des correctifs de sécurité, assurant la longévité et la fiabilité de votre site Web Drupal.
Symfony apporte une approche plus moderne et orientée objet de Drupal 8. Il introduit des concepts comme l'injection de dépendance et le répartiteur d'événements, qui permettent une meilleure organisation et un découplage de la fin de l'organisation et du découplage de code. Cela rend le code plus maintenable et testable. De plus, Httpkernel de Symfony permet à Drupal de gérer les demandes et les réponses de manière standardisée, améliorant l'interopérabilité avec d'autres projets PHP.
Drupal 8 Us Plusieurs composants Symfony, dont HttpFoundation, Httpkernel, Routing, EventDispatcher, DependencyInjection et Classloader. Ces composants gèrent divers aspects du cycle de demande-réponse, du routage, de la gestion des événements, de la gestion de la dépendance et de la mise à jour des classes, respectivement.
Avec l'intégration de Symfony, le développement du module Drupal 8 est devenu plus rationalisé et efficace. Les développeurs peuvent désormais utiliser le conteneur de service de Symfony pour l'injection de dépendance, ce qui rend leurs modules plus modulaires et testables. De plus, l'utilisation du système de routage de Symfony permet un routage URL plus flexible et puissant.
Les composants de Symfony sont très optimisés pour les performances. Par exemple, le composant Httpkernel permet à Drupal de gérer les demandes et les réponses de manière standardisée, réduisant les frais généraux et améliorant les temps de réponse. De plus, EventDispatcher de Symfony permet une gestion efficace des événements, réduisant la quantité d'exécution inutile du code.
Symfony a un composant de sécurité robuste qui fournit un cadre de sécurité complet pour vos applications. Il fournit des fonctionnalités telles que l'authentification, l'autorisation, le chiffrement des données et la protection contre les vulnérabilités Web courantes. En tirant parti de ce composant, Drupal 8 peut fournir une plate-forme plus sécurisée pour vos applications Web.
Symfony est conçu avec l'interopérabilité dans esprit. Il suit les normes PHP-Fig et utilise le compositeur pour la gestion des packages, ce qui le rend compatible avec une large gamme de projets et de bibliothèques PHP. Cela signifie que Drupal 8, avec Symfony à son cœur, peut facilement s'intégrer à d'autres technologies et profiter d'un vaste écosystème de packages PHP.
Symfony fournit plusieurs outils et composants qui aident à tester et à déboguer. Par exemple, les composants Debug et Vardumper fournissent des outils utiles pour déboguer vos applications. De plus, les composants BrowserKit et Domcrawler de Symfony peuvent être utilisés pour les tests fonctionnels de votre site Web Drupal 8.
Symfony est un projet bien entretenu avec une grande communauté active. Il suit les meilleures pratiques en matière de développement Web et suit les dernières tendances de PHP. En intégrant Symfony, Drupal 8 garantit qu'il reste pertinent et continue de fournir une plate-forme robuste pour le développement Web à l'avenir.
Bien que Symfony présente de nouveaux concepts et pratiques qui peuvent être inconnus pour les développeurs de Drupal, il fournit également un moyen plus structuré et standardisé de créer des sites Web. Cela peut en fait faciliter l'apprentissage et comprendre Drupal 8. De plus, il existe de nombreuses ressources et tutoriels disponibles pour Symfony, ce qui peut aider les développeurs à se mettre rapidement à la vitesse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!