Wenn Sie ein Drupaler sind, müssen Sie sich bewusst sein, dass Drupal 8 unterwegs ist. Was Sie vielleicht nicht wissen, ist, dass es einige wichtige Symfony -Komponenten enthält. Die Zusammenarbeit mit Drupal 8.x bietet Drupalern die Möglichkeit, Teil einer massiven Lernkurve zu werden, und wird sie dazu verleiten, mehr über Symfony zu erfahren. In diesem Artikel diskutieren wir die Symfony -Komponenten, die zu Drupal 8 hinzugefügt wurden und auf dem Weg einige Bibliotheken von Drittanbietern behandelt werden.
Bevor wir in den tatsächlichen Artikel eingehen, lassen Sie uns zunächst kurz Symfony behandeln. Es handelt sich um ein PHP -basierter Webanwendungs -Framework, das der MVC -Architektur folgt. Darüber hinaus ist es ein Open -Source -Projekt, das im Rahmen der MIT -Lizenz veröffentlicht wurde. Bitte stellen Sie sicher, dass Sie es nicht mit Symfony CMS verwechseln. Wenn Sie das Symfony -Framework in genauere Details untersuchen möchten, siehe seine Wiki -Seite oder einen der vorherigen SitePoint -Artikel darüber.
Lassen Sie uns nun die Symfony -Komponenten kennenlernen, die in Drupal 8 implementiert werden.
Folgendes sind die Symfony -Komponenten, die den Drupal 8 -Kern in großem Maße mit Strom versorgen:
httpkernel und httpfoundation - Diese sind für die Staffnung des Prozesss der Konvertierung einer Anforderung in eine Antwort mit Hilfe von EventDispatcher verantwortlich. Drupal 8, die nach Symfony verschoben wurde REST Server mit erstklassigem CMS. Diese Initiative soll Drupal ermöglichen, Webdienste zu nutzen, um ihre Inhalte mit reduzierter Komplexität anzubieten. In Anbetracht dieses langfristigen Sehvermögens wird Drupal flexibler, robuster und leicht aufrechterhalten.
EventDispatcher - Implementiert das Mediatormuster (die Kapselung verwendet) auf einfache und effektive Weise, insbesondere wenn der Code -Vererbung nicht funktioniert, wodurch die Anwendung hoch erweiterbar ist. Es ist effektiver in Situationen, in denen Sie dazu neigen, ein Programm zu pflegen und/oder neu zu refaktieren, das aus einer großen Anzahl von Klassen besteht, da es die Kommunikation zwischen den Klassen recht einfach und einfach macht.
Classloader - Bietet Tools, die ihren Standort automatisch laden und zwischengespeichert. PHP verwendet den Autoloading -Mechanismus, um das Laden einer Datei zu delegieren, in der die Klasse in Situationen definiert wird, in denen Sie auf eine noch nicht erforderliche Klasse oder enthalten sind. Symfony verfügt über Autoloader wie PSR-0-Klasse Loader und MapClassloader. Durch die Implementierung der Klassenloader -Komponente werden Drupal -Modulentwickler vor allem bei der Implementierung von Modul_Load_include und anderen Abhängigkeiten vorgesehen. Darüber hinaus ermöglicht es Entwicklern, während der Laufzeit eine einfache Rufe von Klassen zu rufen.
yaml - Es analysiert Yaml -Saiten und wandelt sie in PHP -Arrays um und umgekehrt. Dieses Format wurde speziell so konzipiert, dass sie konfigurationsbezogene Informationen halten und gleichzeitig so ausdrucksstark sind wie XML -Dateien und so lesbar wie INI -Dateien. Es dient als integrale Komponente des CMI (Konfigurationsmanagementinitiative von Drupal), mit dem unsere Module ihre Standardkonfigurationseinstellungen zunächst definieren können, und ermöglicht es dem Site Builder später, das gleiche und angewiesen zu überschreiben. Dieses Konzept des CMI von Drupal 8, das von YAML angetrieben wird
entwickelt, der ebenfalls das Symfony -Projekt entwickelte und für die Integration in Drupal 8. gut abgestimmt war
Prozess-hilft, Befehle in Unterprozessen mithilfe der Befehlszeilenschnittstelle auszuführen. Drupal 8 wird dies verwenden, um alle Aktivitäten zu verarbeiten, die in der Natur den Befehlszeilen sind.
serializer - Es wird verwendet, um Objekte in ein bestimmtes Format (z. B. XML, Yaml, JSON usw.) umzuwandeln und umgekehrt. Um es besser zu verstehen, schauen wir uns das folgende Schema an, dass eine serializer -Komponente folgt:
Zusätzlich können wir es verwenden, um eine Reihe von Jobs zu erledigen, die von der Konfiguration bis zur Erstellung von Knoten und Entität reichen, die von einem REST -Endpunkt geliefert werden sollten.
Validator - hilft Drupal, Werte zu validieren. Zum Beispiel: Validierung der Formulare, Validierung von Entitäten innerhalb von Drupal usw. Um seinen Job zu erledigen, verwendet sie -Doktrinanmerkungen (erörtert in Out-of-the-Box-Drittanbieter-Komponenten Abschnitt
) .Translation - Bietet einen Standardsatz von Tools zum Laden von Übersetzungsdateien, generieren übersetzte Zeichenfolgen als Ausgabe und verwenden Sie das generierte Ergebnis.
Wir haben Symfony -Komponenten durchlaufen, die in Drupal 8 aufgenommen wurden. In diesem Abschnitt werden wir über die in Drupal 8 implementierten Drittanbieter -PHP -Komponenten erfahren und nicht mit Symfony zusammenhängen. Sie sind:
assictic - ein Asset Management Framework
. Assets in Drupal bestehen aus CSS -Dateien, JavaScript -Dateien, Bildern, anderen Mediendateien, Metadaten usw. Diese Assets enthalten filterbare Inhalte, die geladen und abgeladen werden können. Um Vermögenswerte zu manipulieren, müssen Sie entsprechende Filter anwenden. Um die Filter zu verstehen, in welchen Situationen jeweils die Verwendung der Filter, erstellen, aus Dump und vieles mehr empfehlen, empfehlen wir Ihnen, die Asetic Github-Seite zu lesen.Komponist - Ein Tool, das speziell entworfen und entwickelt wurde, um die Abhängigkeit in PHP verwalten zu können, damit wir die abhängigen Bibliotheken für unsere Projektanforderungen deklarieren und für uns installieren können. Obwohl es sich in Paketen und Bibliotheken befindet, ist es kein Paketmanager. Der Komponist ist ein Segen für Drupal 8 aufgrund der folgenden:
behandelt Situationen sehr effizient, in denen Ihr Projekt von einer Reihe von Bibliotheken abhängt.
befasst sich mit Situationen, in denen ein verschachteltes Abhängigkeitskonzept unter den Bibliotheken vorhanden ist. Zum Beispiel; Ihr Projekt ist von einer Bibliothek abhängig (z. B. lib1 ) und in Tern lib1 hängt von einer anderen Bibliothek ab (z. B. lib2 ).
Es liegt in der Verantwortung des Komponisten, auszuwählen, welche Version des Pakets oder der Bibliothek installiert werden muss, sofern nicht ausdrücklich mitgeteilt werden, welche Versionen zu zielen.
Doktrin - Ein Bündel von Tools zur Verwendung mit Datenbankdatensätzen. Drupal 8 verwendet einen Teil davon als Annotationen , das Drupal zusätzliche Metadaten aussetzt. Es wurden Anstrengungen unternommen, um so schwierige Funktionen auf eine recht einfache und praktische Weise zu präsentieren, insbesondere bei der Definition benutzerdefinierter Entitätstypen. Wenn Sie weiter untersuchen möchten, wie die Doktrin mit Drupal 8 verwendet werden soll, empfehlen wir Ihnen, die Dokumentationsseite zu besuchen.
easyrdf - Eine PHP -Bibliothek, die mit Drupal 8 verwendet wurde, um eine einfache Konsum- und Herstellung von RDF zu bieten. Mit Hilfe von Easyrdf fügt Drupal 8 die Möglichkeit hinzu, Metadaten im Markup auf einfache und bequeme Weise zu produzieren. Sie können auch die offizielle Easyrdf -Site besuchen, um mehr darüber zu erfahren.
guzzle - Es handelt sich um einen PHP -HTTP -Client und ein Framework, mit dem Drupal 8 Webanforderungen mithilfe von REST -basierten Webdienstanfragen erstellt werden. Dies macht Drupal 8 Web -Portale effizienter, um verschiedene Arten von Webdiensten zu bearbeiten. Um weiter zu Guzzle zu untersuchen, empfehlen wir, unseren vorherigen Artikel dazu zu lesen.
Phpunit - Wird in Drupal 8 verwendet, um Unit -Tests im gesamten Kern zu standardisieren und Entwicklern zu helfen, Code zu schreiben, der von höchster Qualität ist. Phpunit stellt sicher, dass jeder in Drupal 8 geschriebene Code und in jedem in IT enthaltenen benutzerdefinierten Modul den Branchenstandards entspricht und wie erwartet wie erwartet während des gesamten Lebenszyklus funktioniert. Sie können den aktuellen Status der Eingliederung von Phpunit in Drupal 8 im Auge behalten.
PSR-3-Protokollierung-Ein gemeinsames Protokollierungssystem, das von einer gesamten PHP-Anwendung gemeinsam genutzt wird. Drupal 7 und ältere Versionen verwenden zu diesem Zweck Watchdog (). Das Umschalten von Drupal-Protokollierung von Watchdog () auf ein PSR-3-Protokollierungsgerüst hat Drupal 8 in Bezug auf die gemeinsame Protokollierung 8 robuster und skalierbarer gemacht. Sie können den aktuellen Status dieser Komponente bei Switch Watchdog auf ein PSR-3-Protokollierungs-Framework verfolgen.
Die Einführung einiger Symfony-Komponenten hat die Arbeit mit Drupal 8 vereinfacht. Darüber hinaus hat einige der nicht-symfony-Komponenten zu Drupal 8 in Bezug auf Qualität, Skalierbarkeit und Leistung einen Mehrwert für Drupal 8 zugesagt, wodurch es noch robuster ist und wartbar.
Wie trägt Symfony zur Leistung von Drupal 8 bei? Beispielsweise ermöglicht die HTTPKernel -Komponente Drupal, Anforderungen und Antworten auf standardisierte Weise zu verarbeiten, die Overhead zu reduzieren und die Antwortzeiten zu verbessern. Darüber hinaus ermöglicht der EventDispatcher von Symfony ein effizientes Ereignismanagement und verringert die Menge an unnötiger Codeausführung. Für Ihre Anwendungen. Es bietet Funktionen wie Authentifizierung, Autorisierung, Datenverschlüsselung und Schutz vor gemeinsamen Webanfälligkeiten. Durch die Nutzung dieser Komponente kann Drupal 8 eine sichere Plattform für Ihre Webanwendungen bieten. Geist. Es folgt PHP-Fig-Standards und verwendet Komponist für das Paketmanagement, sodass es mit einer Vielzahl von PHP-Projekten und -Bibliotheken kompatibel ist. Dies bedeutet, dass Drupal 8, mit Symfony im Kern, leicht in andere Technologien integriert und ein riesiges Ökosystem von PHP -Paketen nutzen kann. 🎜> Symfony bietet mehrere Tools und Komponenten, die beim Testen und Debuggen helfen. Beispielsweise bieten die Debug- und Vardumper -Komponenten hilfreiche Tools zum Debuggen Ihrer Anwendungen. Außerdem können die Browserkit- und Domcrawler -Komponenten von Symfony für die Funktionstests Ihrer Drupal 8 -Website verwendet werden.
Wie wirkt sich die Verwendung von Symfony auf die Lernkurve für Drupal 8? > Während Symfony neue Konzepte und Praktiken einführt, die den Drupal -Entwicklern möglicherweise nicht vertraut sind, bietet es auch eine strukturiertere und standardisiertere Möglichkeit, Websites zu erstellen. Dies kann es tatsächlich erleichtern, Drupal zu lernen und zu verstehen 8. Außerdem stehen für Symfony viele Ressourcen und Tutorials zur Verfügung, die den Entwicklern helfen können, schnell auf dem neuesten Stand zu gehen.
Das obige ist der detaillierte Inhalt vonSymfony in Drupal 8. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!