Softwareentwicklung mit Drupal

Referent: Manuel Pistner
Was
ist Software-Konfiguration
●

●

●

Basis-System (Core aktuell Version 7.25)
Abstrakte Komponenten (Module /
Plugins)
...
Was
ist Software-Konfiguration
=> Abstrakte Module werden zu
konkreten Use-Cases konfiguriert
- Bildergalerie
- Addressdat...
Was
ist Software-Konfiguration
Use-Case

Konfigurationsebene

Modul A

Plugin 1

Modul B

Modul C

Plugin 2

4/54
Warum
Softwarekonfiguration
●

●

●

Wiederverwendbare Komponenten
(spart Zeit)
Keine Programmierung (reduziert
Fehler)
De...
Was
ist zu beachten
●

●

●

Konfiguration wird Programmierung
vorgezogen
Best-Practises sind in Konfiguration zu
finden
W...
Was
ist Drupal
●

Ursprung als Community-Framework

●

Später Web-CMS

●

Heute Application-Framework

7/54
Was
ist Drupal außerdem
●

●

●

größtes internationales Community
getriebenes Open-Source Projekt
Über 1% aller Webseiten...
Wie
verbreitet ist Drupal

9/54
Was
unterscheidet Drupal
+ Application-Framework
+ Höchste Flexibilität
+Integration mit anderen Systemen
(Apps, Webservic...
Was
unterscheidet Drupal
- Komplex
- Steile Lernkurve
- Benutzer-Interface teils schwer
überschaubar

11/54
Welche
Anwendungsfälle gibt es
●

Content- und Media-Portale

●

Online-Communities

●

Web-Anwendungen (CRM, BusinessApps...
Welche
Anwendungsfälle gibt es
●

●

●

E-Commerce Portale
Service-Backend für Apps und andere
Clients
Blogs und Online-Ma...
Wer
setzt Drupal ein
●

White House

●

MTV

●

AT&T

●

Land Hessen (Hessen.de)
14/54
Wer
setzt Drupal ein
●

Deutschland.de

●

McDonalds

●

Grammy Awards
=> Weitere @ http://websites.usandv.com/
15/54
Wie
entwickelt sich Drupal
●

Aktuelle Version 7.25

●

Dieses Jahr Drupal 8

●

Dann Objekt-orientiert / Service-orientie...
Wie
entwickelt man mit Drupal
●

Vorraussetzung: Drupal-Core

●

Erweiterungen (Module, Plugins)

●

Themes

17/54
Wie
entwickelt man mit Drupal
●

●

Drupal API für eigene Module
(api.drupal.org)
Best Practises (Videos @ nodeone.se)

18...
Welche
Bereiche existieren in Software
●

Datenstruktur (Model)

●

Daten-Auswahl (Queries)

●

Daten-Darstellung (HTML Ou...
Welche
Bereiche existieren in Software
●

Layout (HTML Markup)

●

Businesslogik / Workflows (Controller)

●

Zugriffskont...
Welche
Bereiche existieren in Software
●

Performance (Slow-Queries, Caching)

●

Entwickler-Tools (Debugging)

21/54
Welche
Bereiche existieren in Software
●

Auswahl und Darstellung von Daten
Queries

DB
MySQL

Darstellung

Datenstruktur
...
Welche
Bereiche existieren in Software
●

Business Logik
User
Service

Recht und
Rollen beachten

Input

Events
Conditions...
Welche
Module gibt es für die Bereiche
=> Datenstruktur:
●

Entities (Nodes), Bundles (Kontakt, Firma)

●

Fields (Integer...
Welche
Module gibt es für die Bereiche
●

=> Aufbau von Entities und Bundles
Field C
Bundle A
DB

Entity Type

Bundle B
Bu...
Welche
Module gibt es für die Bereiche

Content (Node) ist ein Entity mit existierenden Bundles „Article“ und
„Basic Page“...
Welche
Module gibt es für die Bereiche

Verwalten von Feldern eines Nodetypes (Node / Entities)
27/54
Welche
Module gibt es für die Bereiche

Generiertes Formular zum Erstellen eines neuen Nodes (Entity)
28/54
Welche
Module gibt es für die Bereiche
=> Datenselektion (Query):
●

Views

●

API (Entity Field Query, DB-Abstraktion)

2...
Welche
Module gibt es für die Bereiche

Views zum Erstellen und Anzeigen von Daten aus der Datenbank (Entities)
30/54
Welche
Module gibt es für die Bereiche
=> Rendering / Markup / Daten-Output:
●

Field-Formatter (Fields, Image, Gallery)

...
Welche
Module gibt es für die Bereiche
=> Layout:
●

Panels, Panels everywhere, Panelizer

●

Blocksystem / Contexts

●

D...
Welche
Module gibt es für die Bereiche

Einstellungen für die Anzeige eines Nodetypes (Display Suite)
33/54
Welche
Module gibt es für die Bereiche

Anzeige eines Nodes (Display Suite)
34/54
Welche
Module gibt es für die Bereiche

Konfiguration eines Panels für eine Node-Ansicht
35/54
Welche
Module gibt es für die Bereiche

Konfiguration eines Panels per „In-Place Editing“ und Drag&Drop
36/54
Welche
Module gibt es für die Bereiche

Anzeige eines Panles mit View und eingebundenem Node
37/54
Welche
Module gibt es für die Bereiche
=> Business Logik / Workflow
●

Rules

●

Rules-Erweiterungen (Rules Conditional)

...
Welche
Module gibt es für die Bereiche

Konfiguration einer Rule nach dem Speichern eines vorhandenen Nodes
39/54
Welche
Module gibt es für die Bereiche
=> Berechtigungskontrolle
●

Content Access

●

AUL (User Access List, ähnlich AUL)...
Welche
Module gibt es für die Bereiche
=> Performance
●

Entity Cache (Cachen der Entity Daten)

●

Boost, Memcache, APC (...
Welche
Module gibt es für die Bereiche
=> Deployment
●

●

●

Features (Export von ModuleKonfiguration)
Strongarm (Export ...
Welche
Module gibt es für die Bereiche
=> Entwicklung
●

Devel

●

Drush (Shell-Konsole für Drupal)

43/54
Was
leistet die Drupal API
●

Meist prozedural in Drupal 7

●

Interaktion per Hooks (_info, _alter)

●

Weitere APIs durc...
Was
leistet die Drupal API
●

Field API (Feld-typen definieren)

●

Views API (Plugins Selktion und Ausgabe)

●

Rules API...
Was
Leistet die Drupal API
●

Ausblick Drupal 8 (Mitte 2014)

●

Basierend auf Symfony

●

Objektorientierte Architektur

...
Wie
Wird in Drupal deployed
Zentrales Problem:
●

Content

●

Konfiguration
=> liegen in einer Datenbank
47/54
Wie
wird in Drupal deployed
DB
Entwicklung

…..

DB
Live

Content +
Konfiguration

Content +
Konfiguration

Apache (PHP-Co...
Wie
wird in Drupal deployed
Lösung:
●

●

Konfiguration von Content trennen
Features exportiert Konfiguration in Code
(ver...
Wie
wird in Drupal deployed
DB
Entwicklung

…..

Content +
Konfiguration
Apache (PHP-Code)

DB
Live

Content +
Konfigurati...
Wie
Wird in Drupal deployed

51/54
Wie
kann ich schneller starten
●

Mit Distributionen!

●

Viele Module vorkonfiguriert

●

Beinhalten Best-Practises

●

B...
Wie
Kann ich schneller einsteigen
●

http://api.drupal.org (Schnittstellen, Doku)

●

Nodeone.se (Videos)

●

Lullabot.com...
Manuel Pistner
Email: pistner@brightsolutions.de
Nächste SlideShare
Wird geladen in …5
×

Softwarekonfiguration mit Drupal

0 Aufrufe

Veröffentlicht am

Dieser Vortrag wurde an der FH Darmstadt gehalten. Das vollsändige Video ist unter

Veröffentlicht in: Bildung
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
0
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
0
Aktionen
Geteilt
0
Downloads
4
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Softwarekonfiguration mit Drupal

  1. 1. Softwareentwicklung mit Drupal Referent: Manuel Pistner
  2. 2. Was ist Software-Konfiguration ● ● ● Basis-System (Core aktuell Version 7.25) Abstrakte Komponenten (Module / Plugins) konfigurierbare Schnittstellen 2/54
  3. 3. Was ist Software-Konfiguration => Abstrakte Module werden zu konkreten Use-Cases konfiguriert - Bildergalerie - Addressdatenbank - Terminverwaltung - Aufgabenverwaltung - ... 3/54
  4. 4. Was ist Software-Konfiguration Use-Case Konfigurationsebene Modul A Plugin 1 Modul B Modul C Plugin 2 4/54
  5. 5. Warum Softwarekonfiguration ● ● ● Wiederverwendbare Komponenten (spart Zeit) Keine Programmierung (reduziert Fehler) Dennoch API für individuelle Module 5/54
  6. 6. Was ist zu beachten ● ● ● Konfiguration wird Programmierung vorgezogen Best-Practises sind in Konfiguration zu finden Wenn eigener Code dann wiederverwendbar = Konfigurierbar 6/54
  7. 7. Was ist Drupal ● Ursprung als Community-Framework ● Später Web-CMS ● Heute Application-Framework 7/54
  8. 8. Was ist 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
  9. 9. Wie verbreitet ist Drupal 9/54
  10. 10. Was unterscheidet Drupal + Application-Framework + Höchste Flexibilität +Integration mit anderen Systemen (Apps, Webservices, Clients, Server) 10/54
  11. 11. Was unterscheidet Drupal - Komplex - Steile Lernkurve - Benutzer-Interface teils schwer überschaubar 11/54
  12. 12. Welche Anwendungsfälle gibt es ● Content- und Media-Portale ● Online-Communities ● Web-Anwendungen (CRM, BusinessApps) 12/54
  13. 13. Welche Anwendungsfälle gibt es ● ● ● E-Commerce Portale Service-Backend für Apps und andere Clients Blogs und Online-Magazine 13/54
  14. 14. Wer setzt Drupal ein ● White House ● MTV ● AT&T ● Land Hessen (Hessen.de) 14/54
  15. 15. Wer setzt Drupal ein ● Deutschland.de ● McDonalds ● Grammy Awards => Weitere @ http://websites.usandv.com/ 15/54
  16. 16. Wie entwickelt sich Drupal ● Aktuelle Version 7.25 ● Dieses Jahr Drupal 8 ● Dann Objekt-orientiert / Service-orientiert (REST) 16/54
  17. 17. Wie entwickelt man mit Drupal ● Vorraussetzung: Drupal-Core ● Erweiterungen (Module, Plugins) ● Themes 17/54
  18. 18. Wie entwickelt man mit Drupal ● ● Drupal API für eigene Module (api.drupal.org) Best Practises (Videos @ nodeone.se) 18/54
  19. 19. Welche Bereiche existieren in Software ● Datenstruktur (Model) ● Daten-Auswahl (Queries) ● Daten-Darstellung (HTML Output) 19/54
  20. 20. Welche Bereiche existieren in Software ● Layout (HTML Markup) ● Businesslogik / Workflows (Controller) ● Zugriffskontrolle (Rechte, Rollen) 20/54
  21. 21. Welche Bereiche existieren in Software ● Performance (Slow-Queries, Caching) ● Entwickler-Tools (Debugging) 21/54
  22. 22. Welche Bereiche existieren in Software ● Auswahl und Darstellung von Daten Queries DB MySQL Darstellung Datenstruktur Layout Theme (CSS, HTML) Recht und Rollen beachten 22/54
  23. 23. Welche Bereiche existieren in Software ● Business Logik User Service Recht und Rollen beachten Input Events Conditions DB MySQL Output Datenstruktur 23/54
  24. 24. Welche Module gibt es für die Bereiche => Datenstruktur: ● Entities (Nodes), Bundles (Kontakt, Firma) ● Fields (Integer, Text, Reference, Image) 24/54
  25. 25. Welche Module gibt es für die Bereiche ● => Aufbau von Entities und Bundles Field C Bundle A DB Entity Type Bundle B Bundle C Field D Field A Field B 25/54
  26. 26. Welche Module gibt es für die Bereiche Content (Node) ist ein Entity mit existierenden Bundles „Article“ und „Basic Page“ mit jeweiligen Feldern 26/54
  27. 27. Welche Module gibt es für die Bereiche Verwalten von Feldern eines Nodetypes (Node / Entities) 27/54
  28. 28. Welche Module gibt es für die Bereiche Generiertes Formular zum Erstellen eines neuen Nodes (Entity) 28/54
  29. 29. Welche Module gibt es für die Bereiche => Datenselektion (Query): ● Views ● API (Entity Field Query, DB-Abstraktion) 29/54
  30. 30. Welche Module gibt es für die Bereiche Views zum Erstellen und Anzeigen von Daten aus der Datenbank (Entities) 30/54
  31. 31. Welche Module 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
  32. 32. Welche Module gibt es für die Bereiche => Layout: ● Panels, Panels everywhere, Panelizer ● Blocksystem / Contexts ● Display Suite 32/54
  33. 33. Welche Module gibt es für die Bereiche Einstellungen für die Anzeige eines Nodetypes (Display Suite) 33/54
  34. 34. Welche Module gibt es für die Bereiche Anzeige eines Nodes (Display Suite) 34/54
  35. 35. Welche Module gibt es für die Bereiche Konfiguration eines Panels für eine Node-Ansicht 35/54
  36. 36. Welche Module gibt es für die Bereiche Konfiguration eines Panels per „In-Place Editing“ und Drag&Drop 36/54
  37. 37. Welche Module gibt es für die Bereiche Anzeige eines Panles mit View und eingebundenem Node 37/54
  38. 38. Welche Module gibt es für die Bereiche => Business Logik / Workflow ● Rules ● Rules-Erweiterungen (Rules Conditional) 38/54
  39. 39. Welche Module gibt es für die Bereiche Konfiguration einer Rule nach dem Speichern eines vorhandenen Nodes 39/54
  40. 40. Welche Module gibt es für die Bereiche => Berechtigungskontrolle ● Content Access ● AUL (User Access List, ähnlich AUL) ● Weitere Permission Module 40/54
  41. 41. Welche Module gibt es für die Bereiche => Performance ● Entity Cache (Cachen der Entity Daten) ● Boost, Memcache, APC (Op-Code Cache) ● Varnish (Extern) 41/54
  42. 42. Welche Module gibt es für die Bereiche => Deployment ● ● ● Features (Export von ModuleKonfiguration) Strongarm (Export von SystemEinstellungen) Drush Make (Modul-Versionsmanagement) 42/54
  43. 43. Welche Module gibt es für die Bereiche => Entwicklung ● Devel ● Drush (Shell-Konsole für Drupal) 43/54
  44. 44. Was leistet die Drupal API ● Meist prozedural in Drupal 7 ● Interaktion per Hooks (_info, _alter) ● Weitere APIs durch Contrib Module 44/54
  45. 45. Was leistet die Drupal API ● Field API (Feld-typen definieren) ● Views API (Plugins Selktion und Ausgabe) ● Rules API (Events, Actions, Conditions) 45/54
  46. 46. Was Leistet die Drupal API ● Ausblick Drupal 8 (Mitte 2014) ● Basierend auf Symfony ● Objektorientierte Architektur 46/54
  47. 47. Wie Wird in Drupal deployed Zentrales Problem: ● Content ● Konfiguration => liegen in einer Datenbank 47/54
  48. 48. Wie wird in Drupal deployed DB Entwicklung ….. DB Live Content + Konfiguration Content + Konfiguration Apache (PHP-Code) Kopieren der Datenbank Überschreibt neuen Content der Live DB ! Apache (PHP-Code) 48/54
  49. 49. Wie wird in Drupal deployed Lösung: ● ● Konfiguration von Content trennen Features exportiert Konfiguration in Code (versionierbar, transportierbar) 49/54
  50. 50. Wie wird in Drupal deployed DB Entwicklung ….. Content + Konfiguration Apache (PHP-Code) DB Live Content + Konfiguration Apache (PHP-Code) CodeRepository (GIT) Deployment ohne Kopieren der DB sondern nur auf Datei-Ebene 50/54
  51. 51. Wie Wird in Drupal deployed 51/54
  52. 52. Wie kann ich schneller starten ● Mit Distributionen! ● Viele Module vorkonfiguriert ● Beinhalten Best-Practises ● Bilden oft bereits konkrete Features ab 52/54
  53. 53. Wie Kann ich schneller einsteigen ● http://api.drupal.org (Schnittstellen, Doku) ● Nodeone.se (Videos) ● Lullabot.com (Videos) 53/54
  54. 54. Manuel Pistner Email: pistner@brightsolutions.de

×