View
472
Download
1
Category
Preview:
DESCRIPTION
Dieser Vortrag wurde an der FH Darmstadt gehalten. Das vollsändige Video ist unter
Citation preview
Softwareentwicklung mit Drupal
Referent: Manuel Pistner
Wasist Software-Konfiguration
2/54
● Basis-System (Core aktuell Version 7.25)
● Abstrakte Komponenten (Module / Plugins)
● konfigurierbare Schnittstellen
Wasist Software-Konfiguration
=> Abstrakte Module werden zu konkreten Use-Cases konfiguriert
- Bildergalerie- Addressdatenbank- Terminverwaltung- Aufgabenverwaltung- ...
3/54
Wasist Software-Konfiguration
Modul A Modul B Modul C
Plugin 1 Plugin 2
Konfigurationsebene
Use-Case
4/54
WarumSoftwarekonfiguration
● Wiederverwendbare Komponenten (spart Zeit)
● Keine Programmierung (reduziert Fehler)
● Dennoch API für individuelle Module
5/54
Wasist zu beachten
● Konfiguration wird Programmierung vorgezogen
● Best-Practises sind in Konfiguration zu finden
● Wenn eigener Code dann wiederverwendbar = Konfigurierbar
6/54
Wasist Drupal
● Ursprung als Community-Framework
● Später Web-CMS
● Heute Application-Framework
7/54
Wasist Drupal außerdem
● größtes internationales Community getriebenes Open-Source Projekt
● Über 1% aller Webseiten (https://drupal.org/project/usage/drupal)
● „Come for the Code stay for the community“
8/54
Wieverbreitet ist Drupal
9/54
Wasunterscheidet Drupal
+ Application-Framework
+ Höchste Flexibilität
+Integration mit anderen Systemen (Apps, Webservices, Clients, Server)
10/54
Wasunterscheidet Drupal
- Komplex
- Steile Lernkurve
- Benutzer-Interface teils schwer überschaubar
11/54
WelcheAnwendungsfälle gibt es
● Content- und Media-Portale
● Online-Communities
● Web-Anwendungen (CRM, Business-Apps)
12/54
WelcheAnwendungsfälle gibt es
● E-Commerce Portale
● Service-Backend für Apps und andere Clients
● Blogs und Online-Magazine
13/54
Wersetzt Drupal ein
● White House
● MTV
● AT&T
● Land Hessen (Hessen.de)
14/54
Wersetzt Drupal ein
● Deutschland.de
● McDonalds
● Grammy Awards
=> Weitere @ http://websites.usandv.com/
15/54
Wieentwickelt sich Drupal
● Aktuelle Version 7.25
● Dieses Jahr Drupal 8
● Dann Objekt-orientiert / Service-orientiert (REST)
16/54
Wieentwickelt man mit Drupal
● Vorraussetzung: Drupal-Core
● Erweiterungen (Module, Plugins)
● Themes
17/54
Wieentwickelt man mit Drupal
● Drupal API für eigene Module (api.drupal.org)
● Best Practises (Videos @ nodeone.se)
18/54
WelcheBereiche existieren in Software
● Datenstruktur (Model)
● Daten-Auswahl (Queries)
● Daten-Darstellung (HTML Output)
19/54
WelcheBereiche existieren in Software
● Layout (HTML Markup)
● Businesslogik / Workflows (Controller)
● Zugriffskontrolle (Rechte, Rollen)
20/54
WelcheBereiche existieren in Software
● Performance (Slow-Queries, Caching)
● Entwickler-Tools (Debugging)
21/54
WelcheBereiche existieren in Software
DBMySQL
Queries Darstellung
Datenstruktur
LayoutTheme
(CSS, HTML)
● Auswahl und Darstellung von Daten
Recht undRollen beachten
22/54
WelcheBereiche existieren in Software
DBMySQL
UserService
Input
Datenstruktur
EventsConditions
Output
● Business Logik
Recht undRollen beachten
23/54
WelcheModule gibt es für die Bereiche
=> Datenstruktur:
● Entities (Nodes), Bundles (Kontakt, Firma)
● Fields (Integer, Text, Reference, Image)
24/54
WelcheModule gibt es für die Bereiche
● => Aufbau von Entities und Bundles
DBEntity Type
Bundle A
Bundle B
Bundle C
Field A
Field B
Field C
Field D
25/54
WelcheModule gibt es für die Bereiche
Content (Node) ist ein Entity mit existierenden Bundles „Article“ und „Basic Page“ mit jeweiligen Feldern
26/54
WelcheModule gibt es für die Bereiche
Verwalten von Feldern eines Nodetypes (Node / Entities)
27/54
WelcheModule gibt es für die Bereiche
Generiertes Formular zum Erstellen eines neuen Nodes (Entity)
28/54
WelcheModule gibt es für die Bereiche
=> Datenselektion (Query):
● Views
● API (Entity Field Query, DB-Abstraktion)
29/54
WelcheModule gibt es für die Bereiche
Views zum Erstellen und Anzeigen von Daten aus der Datenbank (Entities)
30/54
WelcheModule gibt es für die Bereiche
=> Rendering / Markup / Daten-Output:
● Field-Formatter (Fields, Image, Gallery)
● View Modes (Entities, Display Suite)
● Weitere Formatter (Views Display, Row Styles)
31/54
WelcheModule gibt es für die Bereiche
=> Layout:
● Panels, Panels everywhere, Panelizer
● Blocksystem / Contexts
● Display Suite
32/54
WelcheModule gibt es für die Bereiche
Einstellungen für die Anzeige eines Nodetypes (Display Suite)
33/54
WelcheModule gibt es für die Bereiche
Anzeige eines Nodes (Display Suite)
34/54
WelcheModule gibt es für die Bereiche
Konfiguration eines Panels für eine Node-Ansicht
35/54
WelcheModule gibt es für die Bereiche
Konfiguration eines Panels per „In-Place Editing“ und Drag&Drop
36/54
WelcheModule gibt es für die Bereiche
Anzeige eines Panles mit View und eingebundenem Node
37/54
WelcheModule gibt es für die Bereiche
=> Business Logik / Workflow
● Rules
● Rules-Erweiterungen (Rules Conditional)
38/54
WelcheModule gibt es für die Bereiche
Konfiguration einer Rule nach dem Speichern eines vorhandenen Nodes
39/54
WelcheModule gibt es für die Bereiche
=> Berechtigungskontrolle
● Content Access
● AUL (User Access List, ähnlich AUL)
● Weitere Permission Module
40/54
WelcheModule gibt es für die Bereiche
=> Performance
● Entity Cache (Cachen der Entity Daten)
● Boost, Memcache, APC (Op-Code Cache)
● Varnish (Extern)
41/54
WelcheModule gibt es für die Bereiche
=> Deployment
● Features (Export von Module-Konfiguration)
● Strongarm (Export von System-Einstellungen)
● Drush Make (Modul-Versionsmanagement)42/54
WelcheModule gibt es für die Bereiche
=> Entwicklung
● Devel
● Drush (Shell-Konsole für Drupal)
43/54
Wasleistet die Drupal API
● Meist prozedural in Drupal 7
● Interaktion per Hooks (_info, _alter)
● Weitere APIs durch Contrib Module
44/54
Wasleistet die Drupal API
● Field API (Feld-typen definieren)
● Views API (Plugins Selktion und Ausgabe)
● Rules API (Events, Actions, Conditions)
45/54
WasLeistet die Drupal API
● Ausblick Drupal 8 (Mitte 2014)
● Basierend auf Symfony
● Objektorientierte Architektur
46/54
WieWird in Drupal deployed
Zentrales Problem:
● Content
● Konfiguration
=> liegen in einer Datenbank
47/54
Wiewird in Drupal deployed
48/54
DBEntwicklung
Content +Konfiguration
DBLive
Content +Konfiguration
…..Kopieren der DatenbankÜberschreibt neuenContent der Live DB !
Apache (PHP-Code) Apache (PHP-Code)
Wiewird in Drupal deployed
Lösung:
● Konfiguration von Content trennen
● Features exportiert Konfiguration in Code (versionierbar, transportierbar)
49/54
Wiewird in Drupal deployed
50/54
DBEntwicklung
Content +Konfiguration
DBLive
Content +Konfiguration
…..Code-
Repository(GIT)
Apache (PHP-Code) Apache (PHP-Code)
Deploymentohne Kopierender DB sondernnur auf Datei-Ebene
WieWird in Drupal deployed
51/54
Wiekann ich schneller starten
● Mit Distributionen!
● Viele Module vorkonfiguriert
● Beinhalten Best-Practises
● Bilden oft bereits konkrete Features ab
52/54
WieKann ich schneller einsteigen
● http://api.drupal.org (Schnittstellen, Doku)
● Nodeone.se (Videos)
● Lullabot.com (Videos)
53/54
Manuel Pistner
Email: pistner@brightsolutions.de
Recommended