drupalErste Schritte mit Drupal


Bemerkungen

Drupal ist ein Open-Source-Content-Management-System, das in PHP integriert ist. Drupal wurde entwickelt, um flexibel und leistungsstark zu sein, sodass Entwickler eine Vielzahl von Websites erstellen können, von Blogs und Websites im Broschürenstil bis hin zu komplexen E-Commerce-Plattformen. Durch seine Community-basierte modulare Architektur kann Drupal Tools zur Erweiterung der Kernfunktionen bereitstellen, um die Entwicklung großer und komplexer Projekte zu beschleunigen.

Derzeit gibt es zwei unterstützte Versionen von Drupal: 7 und 8. Drupal 8 basiert auf Komponenten des Symfony-Frameworks und vielen anderen Bibliotheken von Drittanbietern, um moderne Entwicklungsstrukturen bereitzustellen.

Drupal-Konzepte

Versionen

Release Date
 
Ausführung Veröffentlichungsdatum
8.2.4 7. Dezember 2016
7,53 7. Dezember 2016
6,38 (nicht unterstützt) 24. Februar 2016
5.23 (nicht unterstützt) 11. August 2010

Entitätstypen

In früheren Drupal-Versionen wurde das Feldsystem nur für Inhaltstypen verwendet. Dank der Entity-API können wir anderen Dingen, beispielsweise Kommentaren, Felder hinzufügen. Feldfähige Entitäten machen Drupal äußerst flexibel. Ein Entitätstyp ist eine nützliche Abstraktion zum Gruppieren von Feldern. Nachfolgend sind die Entity-Typen im Drupal-Kern aufgeführt:

  • Knoten (Inhalt)
  • Bemerkungen
  • Dateien
  • Taxonomie-Begriffe
  • Taxonomie-Vokabulare
  • Benutzer

Sie können auch neue Arten von Entitätstypen erstellen, bei denen die oben genannten Optionen nicht Ihren Anforderungen entsprechen.

Bündel

Bundles sind eine Implementierung eines Entitätstyps, an den Felder angehängt werden können. Sie können Bundles als Subtypen eines Entitätstyps betrachten. Mit Inhaltsknoten (Entitätstyp) können Sie beispielsweise Bündel (Subtypen) wie Artikel, Blogbeiträge oder Produkte generieren. Nicht alle Entitätstypen verfügen jedoch über Pakete. Beispielsweise verfügen Benutzer nicht über separate Bundles (Untertypen). Für die Entitätstypen, die Bundles zulassen, können Sie beliebig viele Bundles (Subtypes) erstellen. Mit dem Feldsystem können Sie dann zu jedem Bundle unterschiedliche Felder hinzufügen. Beispiele sind ein Dateidownloadfeld auf Basis-Seiten und ein Untertitelfeld auf Artikeln.

Felder

Ein Feld ist ein wiederverwendbarer Inhalt. Technisch gesehen ist jedes Feld ein primitiver Datentyp mit benutzerdefinierten Validatoren und Widgets zum Bearbeiten und Formatieren der Anzeige. Weitere Informationen finden Sie in der Anleitung eines Entwicklers zur Verwendung der Drupal 7 Fields-API .

Bei Entitäten ist es wichtig zu wissen, dass zu jedem Bundle (oder Entitätstyp) Felder hinzugefügt werden können, um die Daten zu organisieren.

Angenommen, Sie erstellen einen Inhaltstyp mit einem unstrukturierten Textfeld und verwenden HTML, um Teile davon zu strukturieren, beispielsweise einen Zusammenfassungsabschnitt oder Preise. Dies würde es dann schwieriger machen, die Anzeige dieser Elemente zu steuern oder Verbindungen zwischen verschiedenen Arten von verwandten Inhalten herzustellen.

Hier ist die Verwendung von Feldern unerlässlich. Sie können ein zusammenfassendes Feld vom Typ Langtext sowie Preisfelder vom Typ Dezimal anlegen.

Entität

Eine Entität wäre eine Instanz eines bestimmten Entitätstyps, beispielsweise ein Kommentar, ein Taxonomiebegriff oder ein Benutzerprofil, oder ein Bündel, beispielsweise ein Blogbeitrag, ein Artikel oder ein Produkt.

Sie können entity_load verwenden , um eine beliebige Entität zu laden. Beachten Sie jedoch, dass der Kern keine Speicher- oder Löschfunktion bietet, aber dank des Entity-API- Moduls werden die fehlenden Teile hinzugefügt (entity_create (), entity_save (), entity_delete (), entity_view () und entity_access ()).

Dies in objektorientiertes Design / Programmierbegriffe setzen ...

Wenn Sie aus einem OOD / P-Hintergrund stammen und versuchen, die Schlüsselkonzepte besser zu verstehen, kann die folgende vorgeschlagene Zuordnung hilfreich sein (wenn auch nicht aus puristischer Sicht streng zutreffend): -

  • Ein Entitätstyp ist eine Basisklasse
  • Ein Bundle ist eine erweiterte Klasse
  • Ein Feld ist ein Klassenmitglied , eine Eigenschaft , eine Variable oder eine Feldinstanz (abhängig von Ihrer Namensgebung).
  • Eine Entität ist ein Objekt oder eine Instanz einer Basis- oder erweiterten Klasse

Alle diese vier OOD / P-Konzepte zeichnen sich dadurch aus, dass sie serialisierbar sind (gespeichert werden - z. B. in einer Datenbank oder Datei). Die Serialisierung erfolgt über die Entity-API.

Installation von Drupal 8 mit Drupal Console

Drupal-Konsole

Die neue CLI für Drupal. Ein Tool zum Generieren von Boilerplate-Code, zum Interagieren mit Drupal und zum Debuggen

Zunächst müssen wir die Drupal Console installieren.

Drupal Console wird nicht nur für diese Zeit benötigt, sondern für zukünftige Installationen.

# Run this in your terminal to get the latest project version:
curl https://drupalconsole.com/installer -L -o drupal.phar

# Or if you don't have curl:
php -r "readfile('https://drupalconsole.com/installer');" > drupal.phar

# Accessing from anywhere on your system:
mv drupal.phar /usr/local/bin/drupal

# Apply executable permissions on the downloaded file:
chmod +x /usr/local/bin/drupal

# Copy configuration files to user home directory:
drupal init --override

# Check and validate system requirements
drupal check
 

Sie können die drupal list , um alle verfügbaren Befehle drupal list .

Im nächsten Schritt laden wir den Drupal-Quellcode herunter

drupal site:new
 

Console fordert Sie auf, einen Ordner zum Herunterladen von Drupal auszuwählen. Im nächsten Schritt werden Sie aufgefordert, die Version von Drupal zum Herunterladen auszuwählen. Ich empfehle die letzte zu wählen.

Wenn Drupal heruntergeladen wird, müssen Sie es installieren.

drupal site:install
 

Nach wenigen einfachen Schritten ist Ihre Drupal-Site fertig.

Bei dieser Methode dauert eine Drupal-Neuinstallation zwischen 5 und 7 Minuten von der Befehlszeile.

Drupal mit Drush installieren

drush dl drupal --drupal-project-rename=example
cd example
drush site-install standard --db-url='mysql://[db_user]:[db_pass]@localhost/[db_name]' --site-name=Example