Home >Internet >Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid

Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid

Date post:05-Dec-2014
Category:
View:252 times
Download:2 times
Share this document with a friend
Description:
Vortrag auf den 9. Wirtschaftsinformatik-Tagen (WIWITA) an der Hochschule Wismar am 12. und 13. Juni 2014
Transcript:
  • 1. Qbus Werbeagentur GmbH Heiligengeisthof 5 18055 Rostock Tel. (0381) 4 61 39 0 [email protected] www.qbus.de Traumziel MV: Relaunch eines Tourismusportals mit Extbase und Fluid Vortrag auf den 9. Wirtschaftsinformatiktagen an der Hochschule Wismar Dipl.-Ing. Axel Wstemann | Qbus Werbeagentur GmbH | [email protected]
  • 2. Qbus Portfolio - Logo - Corporate Design - Corporate Identity - Corporate Language - Websites - Webanwendungen - Redaktionssysteme - Content - Google Werbung - Suchmaschinenoptimierung - Zugriffsanalyse - Social Media Beratung
  • 3. Projekt-Steckbrief Hotels als Gastgeber Basis des Monetarisierungskonzeptes: Hotels und Pensionen zahlen dafr, dass sie ber Traumziel-MV.de ihren Gsten einen ganz besonderen Mehrwert anbieten knnen
  • 4. Projekt-Steckbrief Realisierung auf Basis Macromedia / Adobe Flash und MySQL gewachsene Struktur viele Hacks uneinheitliche Daten- und Codebasis fest im Code implementierte Sonderwnsche
  • 5. Ziele des Relaunch Eliminierung von Flash als veralterte Technologiebasis vollstndige mobile Benutzbarkeit gute Erfassbarkeit von Suchmaschinen mit der Zielstellung, ein gutes Ranking fr relevante Keywords zu erreichen Einfhrung eines Premiumbereiches Kartenmaterial auf Google Maps oder Open Street Map basierend zukunftsfhige Technologiebasis fr stabilen Betrieb, Wachstum und weiteren funktionalen Ausbau Typo3
  • 6. TYPO3 CMS TYPO3 CMS existiert seit 1998 / ursprnglich entwickelt vom Dnen Kasper Skrhj Nach mehreren Jahren im "Beta-Test" kam mit der Version 3.0 am 24. Mai 2002 die erste "richtige" Version auf den Markt.
  • 7. TYPO3 CMS TYPO3 CMS ist ein Enterprise Open Source Content Management Framework ca. 500.000 Installationen weltweit, > 5 Mio Downloads Einsatz in DE z.B. bei > 50% aller DAX 500 Unternehmen, > 50% aller Bundesliga-Vereinen, Discounter, Autovermieter, ffentliche Trger,... > 6.000 Extensions, > 100.000 Entwickler weltweit, > 1.500 Agenturen weltweit Finanziert und untersttzt von der TYPO3 Association
  • 8. Prinzip eines CMS Trennung von Inhalt (Content) und Darstellung (Template) Besonderheit TYPO3: TypoScript
  • 9. TYPO3 NEOS Auf den ersten T3DD (TYPO3 Developer Days) im Jahr 2006 wurde der Entschluss gefasst, TYPO3 von Grund auf neu zu schreiben Das Projekt wurde vom Kernentwickler Robert Lemke begonnen und nach wenigen Monaten von Karsten Dambekalns untersttzt. Codename: TYPO3 Phoenix (bzw. TYPO3 5.0) Beginn der Entwicklung mit eigenem Framework TYPO3 Flow
  • 10. TYPO3 Flow TYPO3 Flow ist ein PHP Framework Bits und Bytes Strukturen, Funktionen, Objekte Architektur und Lsungen fr Standardaufgaben Prozessor Programmiersprache Framework Anwendung Lsung der Anwendungsaufgabe
  • 11. Fhrende PHP Frameworks
  • 12. TYPO3 Flow MVC-Architektur Domain-Driven Design Model View Controller
  • 13. TYPO3 Extbase Rckportierung von TYPO3 Flow auf TYPO3 CMS fr die Programmierung von TYPO3 CMS-Erweiterungen (extensions) fr die Modernisierung der Codestruktur von TYPO3 CMS
  • 14. Domain Driven Design Hiking Activity WaterTravel AnimalWatching Region Host City
  • 15. Domain Driven Design Activity - activityType - activityName - activityHosts - region ... ActivityRepository - add() - update() - findByHost() - findByRegion() ...
  • 16. Persistenz basiert in Flow auf den Object Relational Manager (ORM) Doctrine andere Persistenzlayer als relationale Datenbanken anbindbar in Extbase auf der Typo3 Datenbank API public function addActivityToPinAction(Pin $pin, Activity $activity) { ... $pin->addActivity($activity); $this->pinRepository->update($pin); ... }
  • 17. DQL Data/Doctrine Query Language /** * finds animalWatching tours for a region * * @param QbusTraumzielmvDomainModelRegion $region */ public function findByRegion($region) { $q = $this->createQuery(); $q->matching( $q->logicalAnd( $q->equals('region', $region), $q->equals('activityType', 'animalWatching'), $q->equals('isActive', true), ));
  • 18. Dependency Injection class HikingController extends ... { /** * hikingRepository * * @var QbusTraumzielmvDomainRepositoryHikingRepository * @inject */ protected $hikingRepository; public function listByRegionAction(Region $region) { $hikings = $this->hikingRepository->findByRegion($region); ... }
  • 19. Annotationen weniger Code, lesbarer Code, wartbarer Code z.B. fr Validierung, Relationen zwischen Objekten (1:n, m:n usw.), Object-Property - Database-Field Mapping, Objekttyp (singleton, prototype, session), AOP-Steuerung, eigene Annotationen class Pin extends TYPO3CMSExtbaseDomainObjectAbstractEntity { ... /** * Datetime until the pin is valid * * @var DateTime * @validate NotEmpty * @validate(type="DateTime", options={"locale"="de_DE"}) */ protected $validTo; ...
  • 20. Weitere Merkmale von Flow/Extbase AOP Aspektorientierte Programmierung Modularisierung von modulbergreifenden Aspekten, wie z.B. Logging, Security usw. AOP gibt es nur in Flow, nicht in Extbase Signal Slot Implementierung des Observer Patterns fr Event-gesteuerte Ablufe
  • 21. TYPO3 Fluid Mechanismus um intelligente Templates zu entwickeln klassisch TYPO3: Markertemplates weit verbreitete Extension bis Typo3 4.x: TemplaVoil Fluid: XML-Konform durch ViewHelper erweiterbar
  • 22. Template Layout Partial Partial
  • 23. {namespace tzmv=QbusTraumzielmvViewHelpers} ...
  • Abmelden ... Seiteninhalt

24. ViewHelper class BoolViewHelper extends AbstractViewHelper { /** * returns Ja/Nein due to the boolean input value * * @param boolean $value * @return void */ public function render($value) { return ($value) ? 'Ja' : 'Nein'; } } 25. Das Typo3 Universum EXTBASE FLUID 26. Fazit mit Typo3 und Extbase lassen sich komplexe Webanwendungen mit sinnvollem Aufwand umsetzen optimal insbesondere in der Mischung von applikativen und CMS-Funktionen Daten- und Objektmodellierung sehr einfach und direkt mglich insbesondere mit Untersttzung des grafischen Kickstarters mit Fluid lsst sich recht elegant arbeiten, bei komplexeren Templates ergeben sich Strukturierungs- und letztendlich Wartungs-Probleme grte Herausforderung war die sinnvolle Responsive-Umsetzung weitere Optimierungen notwendig Mglich aber noch nicht umgesetzt: testgetriebene Entwicklung