Softwarekonfiguration mit Drupal

3.823 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
3.823
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
387
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

×