Was ist Drupal?

Drupal ist ein beliebtes Open-Source-Content-Management-System, das in PHP geschrieben ist. Sie wurde in den frühen 2000er Jahren von einem belgischen Studenten erstellt und betreibt jetzt einige der bekanntesten Websites im Internet (WhiteHouse.gov, Weather.com usw.). Es wird oft als Konkurrent von CMSs wie WordPress und Joomla angesehen.

Eine der wichtigsten Komponenten des Drupal-Projekts ist die Gemeinschaft der Unterstützer (Mitwirkende, Entwickler, Evangelisten, Unternehmer usw.). Innerhalb dieser Community steht die Drupal Association, die für die "Förderung und Unterstützung des Drupal-Softwareprojekts, der Community und ihres Wachstums" verantwortlich ist..

Der 8. große Release des Drupal-Projekts ist ein großer Sprung vom Vorgänger und ist gerade in den Handel gekommen. Es führte zu einer ernsthaften Modernisierung des Verhaltenskodex, der Praktiken und der Mentalität. Viele betrachten diese Verschiebung als eine echte Abkehr von der traditionellen Vorstellung eines CMS hin zu mehr Content Management Rahmen (CMF) bietet eine großartige Plattform für die Erstellung komplexer Anwendungen.

In diesem Artikel werde ich einige der häufigeren Fragen beantworten, die Leute zu Drupal haben, wenn Sie das erste Mal starten oder in Betracht ziehen:

  • Ist es richtig für mich? Auf wen wurde abgezielt?
  • Wie kann es installiert werden und wo kann ich es hosten??
  • Wie kann ich als Entwickler damit arbeiten??
  • Welche Möglichkeiten habe ich, um die Funktionalität zu erweitern oder zu gestalten??

Wer ist Drupal??

Seit Beginn des Projekts hat sich Drupal von einem hauptsächlich für den Bau kleinerer Standorte entwickelten Werkzeug entwickelt, das jetzt Plattformen auf Unternehmensebene antreiben kann. Insbesondere mit Drupal 8 können Site Builder und Entwickler problemlos von kleinen Websites auf große Plattformen mit vielen Integrationen skaliert werden. Durch die Übernahme von Composer können Sie beispielsweise nicht nur externe Bibliotheken in ein Drupal-Projekt integrieren, sondern auch Drupal als Teil eines größeren Projekts von Anwendungen und Bibliotheken verwenden. Man kann mit Sicherheit sagen, dass Drupal flexibel genug ist, um die Anforderungen einer Vielzahl von Projekten zu erfüllen.

Wenn es um die Entwicklung geht, hatte Drupal immer eine relativ geschlossene Community - nicht weil die Leute unfreundlich sind, im Gegenteil, sondern hauptsächlich, weil der Code in der Regel in Drupal-Form geschrieben wurde (was manchmal dazu führt, was als "Drupal" bezeichnet wird) Drupalismen). Dies bedeutet eine Lernkurve für jeden Entwickler, der gestartet wird, aber auch weniger Interesse von Entwicklern anderer PHP-Projekte, um einzusteigen und einen Beitrag zu leisten.

Dies ist nicht mehr der Fall. Insbesondere mit der Veröffentlichung von Drupal 8 fördert die Community nun eine neue Mentalität der Wiederverwendbarkeit von Code und bewährte Verfahren für verschiedene Open-Source-Projekte. Die aktive Teilnahme an der PHP Framework Interoperability Group ist Teil dieser Bemühungen. Die Verwendung einer Reihe beliebter Symfony-Komponenten in Drupal 8 core ist ein Beleg für diese Verpflichtung. 

Mit diesem Schritt wurde die Drupal-Community durch die Aufnahme zahlreicher Entwickler aus anderen Communities und Projekten immer reicher, und es wird mit Sicherheit noch weiter wachsen. Wenn Sie also ein Laravel-Entwickler sind, wird der Blick auf den Drupal-Code nicht mehr so ​​abschreckend sein.

Wie kann ich Drupal installieren und wo kann ich es hosten??

Drupal hat traditionell einen relativ einfachen Installationsprozess, insbesondere für Benutzer, die sich zumindest in einer Linux-Umgebung auskennen. Das Projekt muss einfach in einem Ordner abgelegt werden, den Ihr Webserver ausführen kann (der PHP und eine MySQL- oder MariaDB-Datenbank verwenden muss). Dann zeigen Sie Ihren Browser auf die /install.php Datei und das Befolgen der Schritte erledigt den Rest. Der wichtigste Bildschirm, den Sie sehen, ist der, in dem Sie eine bestimmte Datenbank zur Verwendung auswählen.

In Bezug auf die Anforderungen war die LAMP-Stack-Umgebung (Linux, Apache, MySQL und PHP) schon immer ein Favorit für Drupal. Sie ist jedoch keinesfalls darauf beschränkt. Es gibt Lösungen für die direkte Installation unter Windows oder Mac (z. B. mit dem Acquia Dev Desktop), aber auch auf einem Linux-System, auf dem andere Webserver ausgeführt werden.

Der einfachste Ansatz, wenn Sie mit Ihrem eigenen Setup arbeiten, ist die Verwendung eines LAMP-Servers für das Hosting. Für ein bisschen mehr Leistung können Sie Apache durch Nginx ersetzen, aber Sie müssen sich dann um eine bestimmte Konfiguration kümmern, die sonst in der behandelt wird .htaccess Datei, mit der Drupal geliefert wird.

Wenn Sie jedoch keinen eigenen Hosting-Server verwalten möchten, gibt es drei Hauptanbieter von Drupal Managed Hosting: Acquia, Pantheon und Platform.sh. Diese bieten auch einen Workflow für einfache Updates und Entwicklungsabläufe. Nach dieser Zeit suchen Sie nach vollständig verwaltetem Hosting bei einer Drupal-Entwicklungsfirma.

Wie kann ich mit der Entwicklung beginnen??

Die Entwicklung von Drupal-Websites war in der Regel das, was Ihnen entweder sehr gut gefallen hat oder das Sie überhaupt nicht mochten. Dies liegt daran, dass Sie bei Ihrer ersten Einführung in Drupal auf sehr viele Besonderheiten stießen, die Sie in anderen Projekten nicht gesehen haben. Also, wenn diese Ihre Lust kitzelten, liebten Sie es für immer.

Mit dem Absteigen Insel In Drupal 8 ist dies nicht mehr der Fall. Du hast immer noch genug davon Drupalismen Sie können lieben oder hassen, aber Sie haben jetzt auch externe Komponenten wie Symfony oder Guzzle und vor allem eine modernere Art, Code allgemein zu schreiben (OOP, Design Patterns, wiederverwendbare Komponenten usw.). Ihre PHP-Kenntnisse beim Erstellen von Websites mit Zend werden sich als nützlich erweisen.

Ein guter Einstieg in die Drupal-Entwicklung ist, einige Online-Videokurse zu besuchen. Es gibt eine Reihe von Ressourcen, die für diesen Zweck hervorragend sind, insbesondere Drupalize.me. Wenn Videos jedoch nicht Ihr bevorzugtes Medium sind, stehen Ihnen auch zahlreiche geschriebene Tutorials und Anleitungen zur Verfügung. Unter den folgenden Links finden Sie einige erste Schritte, die Sie durchführen können:

  • Offizielle Drupal-Entwicklungsanleitungen
  • Die Drupal-API-Referenz
  • Handbücher zur Modulentwicklung
  • Envatos Drupal-Code-Tutorials

Da Drupal 8 brandneu ist, werden Sie deutlich mehr Lerninhalte für Drupal 7 finden. Dennoch hat sich der Fokus in der Community in letzter Zeit auf Drupal 8 verschoben, sodass Sie immer mehr dieser Ressourcen erwarten können. Wenn Sie keine Erfahrung mit einer Version von Drupal haben, sollten Sie sich ausschließlich auf Drupal 8 konzentrieren, da die Änderungen zwischen den beiden sehr groß sind und Sie möglicherweise unnötigen Herausforderungen gegenüberstehen.

Wie kann ich Drupal erweitern??

Der hauptsächliche Erweiterungspunkt einer Drupal-Kerninstallation ist ihr Modul System. 

Module werden verwendet, um größere Abschnitte wiederverwendbarer Funktionen zu kapseln, die an verschiedenen Standorten funktionieren können / sollen. Abgesehen von den Kernmodulen stehen zahlreiche zur Installation verfügbare Module zur Verfügung. 

Die meisten sind zwar nur für Drupal 6 und 7 verfügbar, aber die Community holt auch für die neueste Version auf. Dieses Problem wird auch durch die Einbindung einiger populärer Module in Drupal 8 sowie durch die Erweiterung des Umfangs dessen, was Core aus der Box heraus tun kann, gemindert (im Vergleich zu Drupal 7).. 

Benutzerdefinierte Module (diejenigen, die Sie selbst schreiben) sind die primäre Möglichkeit, beliebige Funktionen hinzuzufügen, die nicht über ein beigetragenes Modul verfügbar sind.

Durch das Installieren von Modulen können Sie verschiedene Funktionen anschließen. Sie sollten dies jedoch nicht als grünes Licht betrachten, wenn Sie zu viele hinzufügen. Es ist immer besser, sich an diejenigen zu halten, die Sie tatsächlich brauchen, und haben Sie keine Angst, in dieser Hinsicht kritisch zu sein. Sie können auch daran arbeiten, ein ausgewogenes Verhältnis zwischen dem eingebrachten Code und dem benutzerdefinierten Code zu finden, den Sie selbst schreiben. 

Darüber hinaus sollten Sie, da wir über Open Source-Software sprechen, die von Ihnen installierten Module immer auswerten. Die folgenden Indikatoren sind gute Beispiele, auf die Sie achten sollten: Anzahl der Downloads und Nutzung, Häufigkeit der Commits, Eingreifen der Verantwortlichen, Status der Problemwarteschlange.

Und denken Sie auch an die Sicherheit. Es wird dringend empfohlen, sowohl den Drupal-Kern als auch die Module, die dazu beigetragen haben, auf dem neuesten Stand zu halten, da dies erheblich dazu beiträgt, dass Ihre Site und Ihr Server sicher bleiben (obwohl dies nicht gewährleistet ist)..

Was ist mit Styling??

Die Stilebene einer Drupal-Site wird (zum großen Teil) nach ihrem Thema behandelt. Themes ähneln Modulen insofern, als sie ein Erweiterungspunkt sind, jedoch unterschiedliche Verantwortlichkeiten haben. Sie enthalten die Stile, Front-End-Bibliotheken und in den meisten Fällen Vorlagendateien, die zur Ausgabe von Daten verwendet werden.

Drupal 8 hat im Vergleich zur Vorgängerversion große Fortschritte gemacht: Die beliebte Twig-Engine wurde für das Templating übernommen, das Theming auf Twig-Vorlagendateien beschränkt, das Debugging und das Überschreiben von Templates wurden erheblich vereinfacht usw. Ähnlich wie bei den Fortschritten in Back-End-Entwicklungserfahrung (DX), wurde die Themenebene für Nicht-Drupal-Fans attraktiver gestaltet. Frontend-Entwickler können jetzt problemlos mit Drupal-Themes arbeiten, ohne die Besonderheiten des Backends zu verstehen.

Drupal Core enthält eine Reihe von Themen, die Ihnen Beispiele geben können, die Sie jedoch erweitern können. Es gibt auch Themen, die ähnlich sind wie Module. Bekannte Front-End-Frameworks wie Bootstrap oder Zurb Foundation verfügen über ausgereifte Drupal-Theme-Implementierungen für Drupal 7, die sich auch auf Drupal 8 vorbereiten. Diese eignen sich sehr gut als Basisthemen, aber auch für das schnelle Scaffolding einer Website und für ein ordentliches Erscheinungsbild.

Auch kostenpflichtige Themen stehen zum Ausprobieren bereit. Normalerweise sind sie sehr günstig und schnell einzurichten. Das Problem bei ihnen ist, dass sie genau so viel wert sind, wie Sie dafür bezahlen, und dass ihre Flexibilität in der Regel klaffende Lücken aufweist. Als Anfänger können diese Themen eine gute Möglichkeit sein, eine Site einzurichten, und dies kann sehr gut sein. Im Laufe des Fortschritts werden Sie jedoch lernen, sie zu vermeiden und eigene zu erstellen, die auf externen Entwürfen oder sogar einfachen HTML / CSS / JS-Vorlagen basieren.

Fazit

Drupal ist ein leistungsfähiges Werkzeug zum Erstellen von Websites und Plattformen jeglicher Art. Mit jeder neuen Hauptveröffentlichung hat sich Drupal dazu verpflichtet, sich selbst zu verbessern, robuster und flexibler zu werden und sich auch außerhalb von Communities zu engagieren.