


Kernpunkte
- Drupal 8 bewegt sich von prozeduraler Programmierung zu objektorientierter Architektur und integriert Code aus anderen Quellen durch das stolz gefundene Programm an anderer Stelle, einschließlich wichtiger Ergänzungen wie Symfony-Komponenten.
- Erstellen eines Drupal 8 -Moduls erfordert das Definieren der erforderlichen Ordnerstruktur und -dateien, wie z. B.
.info.yml
Dateien. Die Ordner für benutzerdefinierte und Beitragsmodul befinden sich nun direkt unter dem Stammverzeichnismodules/
und der Kerncode wird in einen separatencore/
Ordner verschoben. - "Routing" in Drupal 8 ersetzt die
hook_menu()
-Funktion in Drupal 7 und nutzt die Symfony2 -Komponente. Dies beinhaltet die Definition der Route als Konfiguration und die Bearbeitung der Rückruffunktion im Controller. Die Routing -Datei des Modulsdemo.routing.yml
wird im Modul -Root -Ordner erstellt.
Der Menülink - wird nicht mehr über
hook_menu()
verarbeitet, sondern als Konfiguration in der YML -Datei deklariert. Erstellen Sie eine Datei mit dem Namendemo.menu_links.yml
im Modul -Root -Verzeichnis, um den Menülink und ihren Speicherort im vorhandenen Menü der Website zu definieren.
Beachten Sie, dass Drupal 8 zum Zeitpunkt des Schreibens, da es zum Zeitpunkt des Schreibens noch in der Entwicklung ist, ein Teil des Codes möglicherweise veraltet ist. Bitte beziehen Sie sich in der Codebasis, in der ich versucht habe, den Beispielcode zu aktualisieren und ihn mit der neuesten Drupal 8 -Version kompatibel zu machen.
Drupal 8 führt viele Änderungen vor und versucht, es mit anderen modernen PHP -Frameworks auszurichten. Dies bedeutet, dass die prozedurale Programmierung im alten PHP 4-Stil weitgehend durch objektorientierte Architektur ersetzt wurde. Um dies zu erreichen, enthält Drupal 8 im Rahmen des stolz gefundenen Programms an anderer Stelle Code, der nicht speziell für Drupal entwickelt wurde.
Eine der wichtigsten Ergänzungen zum Drupal ist die Symfony -Komponente, die zwei Hauptauswirkungen auf Drupal -Entwickler hat. Erstens hat es das Potenzial, die Anzahl der Entwickler, die sich jetzt für Drupal entwickeln möchten, erheblich zu erhöhen. Zweitens hat es einigen Drupal 7 -Entwicklern, denen es an modernen Erfahrung in der PHP -Praxis fehlt, einige Bedenken hinterlassen. Aber das ist in Ordnung, wir alle lernen, die Erfahrung, die wir aus Frameworks wie Symfony (und hoffentlich Drupal 8) gelernt haben, werden leicht verlängert und auf andere PHP -Frameworks angewendet.
In der Zwischenzeit befindet sich Drupal 8 in den späten Stadien seines Veröffentlichungszyklus, wobei die aktuelle Version zum Zeitpunkt des Schreibens von Alpha11. Wir werden diese Version verwenden, um einige grundlegende Änderungen in der Modulentwicklung zu präsentieren, auf die Drupal 7 -Entwickler zuerst begegnen und mit der Sie vertraut sein sollten. Ich habe eine Git -Codebasis eingerichtet, in der Sie den Code finden, den ich in dieser Serie geschrieben habe, und wenn Sie es vorziehen, können Sie so folgen und lernen.
Wie erstelle ich ein Modul?
Das erste, worauf wir uns konzentrieren müssen, ist das Definieren der erforderlichen Ordnerstrukturen und -dateien, damit Drupal 8 unsere neuen Module verstehen kann. In Drupal 7 müssen wir mindestens zwei Dateien (.info
und .module
) erstellen, aber in Drupal 8 reicht die YAML -Version des ersteren aus. Ja, die .info
-Datei wird nun durch die .info.yml
-Datei ersetzt, die ähnliche Daten enthält, jedoch mit unterschiedlichen Strukturen.
Eine weitere große Änderung ist, dass die Ordner benutzerdefinierter und Beitragsmodul jetzt direkt zum Ordner Root Directory modules/
gehen. Dies liegt daran, dass der gesamte Kerncode in seinen eigenen separaten core/
-Fordner verschoben wurde. Natürlich wird im Verzeichnis modules/
empfohlen, um Module in benutzerdefinierte und Beitrag wie in Drupal 7 zu trennen.
Erstellen wir ein Modul namens Demo (sehr originell) und legen Sie es in das Verzeichnis modules/custom/
. Wie ich bereits erwähnt habe, benötigen wir in diesem neu erstellten demo/
Ordner zuerst nur eine demo.info.yml
-Datei, die den folgenden erforderlichen Inhalt enthält:
name: Drupal 8 Demo module description: 'Demo module for Drupal 8 alpha11' type: module core: 8.x
Sie sollten mit drei der vier Schlüsselwertpaare (Name, Beschreibung und Kern) vertraut sein. Typ ist jetzt auch eine Anforderung, da Sie auch YML -Dateien für das Thema erstellen können. Eine weitere wichtige Sache ist, dass Leerzeichen in der YML-Datei sinnvoll sind und die richtige Eindrücke verwenden, um die Daten in eine Array-ähnliche Struktur zu organisieren.
Sie können diese Dokumentseite für zusätzliche Schlüsselwertpaare anzeigen, die zur Modul-Datei .info.yml
hinzugefügt werden können, sowie Anweisungen zur Ankündigung von Änderungen an diesem Format.
Es ist so, eine Datei. Sie können jetzt zur Seite der Erweiterungen navigieren, das Demo -Modul suchen und es aktivieren.
Wie ich bereits erwähnt habe, müssen wir, bevor wir das Modul aktivieren, keine .module
Datei mehr erstellen. Architektonisch gesehen wird die Größe der .module
-Datei stark reduziert, da der größte Teil der Geschäftslogik in die Serviceklassen, Controller und Plugins verschoben wird, aber einige davon werden später sehen.
Was ist "Routing" und was passiert mit seinen Rückruffunktionen? hook_menu()
In Drupal 7 ist wahrscheinlich der am meisten implementierte Haken, da es verwendet wird, um die Pfade von Drupal zu definieren und diese Pfade mit der Rückruffunktion zu verbinden. Es ist auch für das Erstellen von Menülinks und vielen anderen Inhalten verantwortlich. hook_menu()
, da wir Symfony2 -Komponenten stark verwenden, um das Routing zu verarbeiten. Dies beinhaltet die Definition der Route als Konfiguration und die Verarbeitung der Rückruffunktion im Controller (eine Funktion der Controller -Klasse). Lassen Sie uns sehen, wie Sie dies tun, indem Sie eine einfache Seite erstellen, die klassische Hello World ausgibt! hook_menu()
für unser Modul erstellen. Diese Datei befindet sich im Modul -Root -Ordner (neben demo.routing.yml
). In dieser Datei können wir die folgende (einfache) Routendefinition haben: demo.info.yml
name: Drupal 8 Demo module description: 'Demo module for Drupal 8 alpha11' type: module core: 8.x
Die erste Zeile markiert den Beginn des Erstellens einer neuen Route namens Demo für die Moduldemo (der erste ist der Modulname und der zweite der Routenname). Unter Pfad geben wir den Pfad an, sich für diese Route zu registrieren. Unter Standardeinstellungen haben wir zwei Dinge: den Standard -Seitentitel (_title
) und _content
, auf die eine Funktion auf der Democontroller -Klasse verweist. Nach Anforderungen geben wir die Berechtigungen an, die der Benutzer haben muss, um die Seite anzuzeigen. Sie sollten diese Dokumentationsseite für weitere Optionen konsultieren, die diese Routing -Datei haben kann.
Erstellen wir jetzt unseren ersten Controller namens DemoController, der eine Funktion namens Demo () aufruft, wenn der Benutzer diese Seite anfordert.
Erstellen Sie im Modulverzeichnis einen Ordner namens SRC/ und erstellen Sie einen Ordner mit dem Namen Controller/ darin. Hier wird die Controller -Klasse gespeichert. Erstellen Sie weiterhin den ersten: Democontroller.php.
Der Controller und die anderen Klassen, die wir später im SRC/ Ordner sehen werden, sind Teil des PSR-4-Standards. Zunächst mussten wir eine größere Ordnerstruktur (PSR-0-Standard) erstellen, aber jetzt gibt es eine Übergangsphase, in der beide funktionieren. Wenn Sie also den Code in einem Ordner namens LIB/ immer noch sehen, ist er PSR-0.
In unserer Democontroller.php -Datei können wir jetzt unsere Klasse deklarieren:
demo.demo: path: '/demo' defaults: _content: '\Drupal\demo\Controller\DemoController::demo' _title: 'Demo' requirements: _permission: 'access content'
Dies ist das einfachste und am wenigsten zu tun, um etwas auf der Seite anzuzeigen. Oben geben wir den Klassennamenspace an. Im Folgenden deklarieren wir die Klasse.
In der Democontroller -Klasse haben wir nur die Demo () -Funktion, die ein wiedergegebenes Array ähnlich wie bei Drupal 7 zurückgibt. Es ist keine große Sache. Alles, was wir jetzt tun müssen, ist den Cache zu löschen und zum https://www.php.cn/link/1a4a5f89e71e4bb9973355c964a950b4 Drupal Page mit Hallo Welt zu sehen.
Wo ist der Menülink?
In Drupal 7 können wir bei der Implementierung hook_menu()
den registrierten Pfad auch zum Menü hinzufügen, um den Menülink auf der Website anzuzeigen. Auch dies wird nicht mehr mit diesem Haken behandelt, sondern definiert den Menülink als Konfiguration mithilfe der YML -Datei.
Schauen wir uns an, wie Sie einen Menülink erstellen, der im Menü "verwaltete" Struktur "angezeigt wird. Zunächst müssen wir eine Datei namens demo.menu_links.yml
im Stammverzeichnis des Moduls erstellen. In dieser YML -Datei definieren wir den Menülink und seinen Standort im vorhandenen Menü der Website. Um die von uns festgelegten Ziele zu erreichen, brauchen wir Folgendes:
<?php /** * @file * Contains \Drupal\demo\Controller\DemoController. */ namespace Drupal\demo\Controller; /** * DemoController. */ class DemoController { /** * Generates an example page. */ public function demo() { return array( '#markup' => t('Hello World!'), ); } }
Wir haben noch einmal eine einstiegbasierte YML-Struktur, in der wir zuerst den Maschinennamen (Demo) des Menülinks für die Modul-Demo definieren (wie wir es beim Routing getan haben). Als nächstes haben wir den Link -Titel und die Beschreibung, gefolgt von dem übergeordneten Link (wo er platziert werden soll) und welche Route er verwenden sollte.
Der Wert vonübergeordnet ist der übergeordnete Menülink (das Modul anhängen). Um ihn zu finden, müssen Sie in der Datei *.menu_links.yml eingehen. Ich weiß, dass der "Struktur" -Link im Kernsystemmodul definiert ist. Durch die Betrachtung des Systems.
Route_Name ist der Name der Maschine der Route, die wir für diesen Link verwenden möchten. Wir haben unsere schon einmal definiert. Damit können Sie den Cache löschen und zum https://www.php.cn/link/6c2665d7c3ed1e5bfd8ba600F026EB55 Demo/Path. Gut.
Schlussfolgerung
In diesem Artikel beginnen wir, die Entwicklung der Modul in Drupal 8 zu untersuchen. In dieser Phase (Alpha11 -Version) ist es an der Zeit, zu lernen, wie die neuen API- und Port -Beitragsmodule verwendet werden. Dazu schreibe ich meine Erkundung dieses neuen aufregenden Rahmens (Drupal 8), damit wir alle über diese Änderungen erfahren und sofort in die Arbeit einsteigen können, wenn der Veröffentlichungstag ankommt.
Zuerst haben wir einige Grundlagen gelernt: So starten Sie das Drupal 8 -Modul (Dateien, Ordnerstrukturen usw.) und vergleichen es mit Drupal 7. Wir haben auch gelernt, wie man eine Route und eine Controller -Klasse definiert und wie man eine Funktion über diese Route aufruft. Schließlich sehen wir, wie Sie einen Menülink erstellen, der die von uns definierte Route verwendet.Im nächsten Tutorial werden wir dieses Modul weiter erstellen und einige andere coole neue Funktionen kennenlernen, die Drupal 8 verwendet. Wir lernen, wie Sie Blöcke erstellen und Formulare verwenden und das System konfigurieren. Wir sehen uns dann.
FAQs über den Bau von Drupal 8 Modulen (FAQ)
Was ist die Grundstruktur des Drupal 8 -Moduls?
Das Drupal 8 -Modul ist im Wesentlichen eine Reihe von Dateien, die bestimmte Funktionen enthalten und auf eine bestimmte Weise integriert. Die Grundstruktur enthält eine
-Datei (Bereitstellung von Metadaten über das Modul), eine .info.yml
-Datei (einschließlich PHP -Code) und andere optionale Dateien wie .module
, .css
, .js
usw. für Anhängenfunktion. .twig
Dateien sind obligatorisch, die den Namen, die Beschreibung, das Paket, den Typ, den Kern und die Abhängigkeiten des Moduls definieren. .info.yml
Das Routing -System in Drupal 8 ist für die Zuordnung der URL auf eine bestimmte Controller -Klasse verantwortlich. Es verwendet die Routing -Komponente von Symfony, die flexible und leistungsstarke Systeme ermöglicht. Das Routing -System verwendet die
-Datei, um Routen mit eindeutigen Namen, Pfaden, Standardwerten und Anforderungen zu definieren. Der Standardwert gibt normalerweise die Controller -Klasse an, die für die Bearbeitung der Anfrage verantwortlich ist. routing.yml
Erstellen einer benutzerdefinierten Seite in Drupal 8 beinhaltet das Definieren von Routen und Controllern. Die Route ist in der Datei
definiert und ordnet die URL an den Controller ab. Der Controller ist eine PHP -Klasse, die ein gerendertes Array für den Seiteninhalt zurückgibt. Die Controller -Klasse sollte im Verzeichnis routing.yml
des Moduls platziert werden. src/Controller
Wie füge ich meiner Drupal 8 benutzerdefinierten Seite einen Menülink hinzu?
Hinzufügen eines Menülinks zu Ihrer benutzerdefinierten Seite beinhaltet das Erstellen einer links.menu.yml
-Datei in Ihrem Modul. Diese Datei definiert einen Menülink, dessen Eigenschaften Titel, Beschreibung, Eltern, Routennamen und Gewicht enthalten. Der Routename sollte mit dem in der routing.yml
-Fatei definierten Routennamen übereinstimmen.
Wie erstelle ich eine Form in Drupal 8?
Erstellen einer Form in Drupal 8 beinhaltet das Erstellen einer Formklasse, die die FormBase
-Klasse erweitert und FormInterface
implementiert. Diese Klasse definiert Formularelemente, Validierung und Einreichungsverarbeitung. Das Formular kann angezeigt werden, indem es vom Controller zurückgegeben wird.
Wie erstelle ich Blöcke in Drupal 8?
Erstellen eines Blocks in Drupal 8 beinhaltet das Erstellen einer Blockklasse, die die BlockBase
-Klasse erweitert. Diese Klasse definiert Blockinhalte und andere Eigenschaften. Blöcke können über die Block -Layout -Schnittstelle auf der Seite platziert werden.
Wie erstelle ich ein Konfigurationsformular in Drupal 8?
Erstellen eines Konfigurationsformulars beinhaltet das Erstellen einer Formularklasse, die die ConfigFormBase
-Klasse erweitert und FormInterface
implementiert. Diese Klasse definiert Formularelemente und behandelt den Speicher und das Laden von Konfigurationsdaten.
Wie erstelle ich eine Administratorseite in Drupal 8?
Erstellen einer administrativen Seite beinhaltet das Definieren einer Route unter /admin
und einen Controller, der den Seiteninhalt zurückgibt. Seiten können zum Admin -Menü hinzugefügt werden, indem ein Menülink mit einem Elternteil unter system.admin
definiert wird.
Wie erstelle ich ein Thema in Drupal 8?
Erstellen eines Themas in Drupal 8 beinhaltet das Erstellen einer .info.yml
-Datei, die den Namen, die Beschreibung, den Typ, den Kern und die grundlegenden Themen definiert. Andere .twig
, .css
und .js
Dateien können hinzugefügt werden, um Themen für jedes Element festzulegen.
Wie erstelle ich einen benutzerdefinierten Feldtyp in Drupal 8?
Erstellen eines benutzerdefinierten Feldtyps beinhaltet das Erstellen einer Feldtypklasse, die die FieldTypePluginBase
-Klasse erweitert. Diese Klasse definiert Feldeigenschaften und -methoden zum Speichern, Anzeigen und Form der Verarbeitung. Feldtypen können für Inhaltstypen, Benutzer, Kommentare und andere Unternehmen verwendet werden.
Das obige ist der detaillierte Inhalt vonErstellen Sie ein Drupal 8 -Modul: Routing, Controller und Menü -Links. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Lange URLs, die oft mit Schlüsselwörtern und Tracking -Parametern überfüllt sind, können Besucher abschrecken. Ein URL -Verkürzungsskript bietet eine Lösung, die präzise Links erstellt, die ideal für soziale Medien und andere Plattformen sind. Diese Skripte sind für einzelne Websites a wertvoll

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Dies ist der zweite und letzte Teil der Serie zum Aufbau einer Reaktionsanwendung mit einem Laravel-Back-End. Im ersten Teil der Serie haben wir eine erholsame API erstellt, die Laravel für eine grundlegende Produktlistenanwendung unter Verwendung von Laravel erstellt hat. In diesem Tutorial werden wir Dev sein

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Die 2025 PHP Landscape Survey untersucht die aktuellen PHP -Entwicklungstrends. Es untersucht Framework -Nutzung, Bereitstellungsmethoden und Herausforderungen, die darauf abzielen, Entwicklern und Unternehmen Einblicke zu geben. Die Umfrage erwartet das Wachstum der modernen PHP -Versio

In diesem Artikel werden wir das Benachrichtigungssystem im Laravel -Web -Framework untersuchen. Mit dem Benachrichtigungssystem in Laravel können Sie Benachrichtigungen an Benutzer über verschiedene Kanäle senden. Heute werden wir diskutieren, wie Sie Benachrichtigungen OV senden können


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung
