Qbus Werbeagentur GmbH
Heiligengeisthof 5 • 18055 Rostock • Tel. (0381) 4 61 39 0 • info@qbus.de • www.qbus.de
Traumziel M...
Qbus Portfolio
- Logo
- Corporate Design
- Corporate Identity
- Corporate Language
- Websites
- Webanwendungen
- Redaktion...
Projekt-Steckbrief
Hotels als Gastgeber
Basis des Monetarisierungskonzeptes:
Hotels und Pensionen zahlen dafür, dass sie ü...
Projekt-Steckbrief
Realisierung auf Basis Macromedia / Adobe Flash und MySQL
gewachsene Struktur – viele „Hacks“
uneinheit...
Ziele des Relaunch
Eliminierung von Flash als veralterte Technologiebasis
vollstândige mobile Benutzbarkeit
gute Erfassbar...
TYPO3 CMS
TYPO3 CMS existiert seit 1998 / ursprünglich entwickelt
vom Dânen Kasper Skårhøj
Nach mehreren Jahren im "Beta-T...
TYPO3 CMS
TYPO3 CMS ist ein
„Enterprise Open Source Content Management Framework“
ca. 500.000 Installationen weltweit, > 5...
Prinzip eines CMS
Trennung von Inhalt (Content) und Darstellung (Template)
Besonderheit TYPO3: TypoScript
TYPO3 NEOS
Auf den ersten T3DD (TYPO3 Developer Days) im Jahr 2006 wurde
der Entschluss gefasst, TYPO3 von Grund auf neu z...
TYPO3 Flow
TYPO3 Flow ist ein PHP Framework
Bits und Bytes
Strukturen, Funktionen, Objekte
Architektur und Lösungen für St...
Führende PHP Frameworks
TYPO3 Flow – MVC-Architektur
Domain-Driven Design
Model
View
Controller
TYPO3 Extbase
Rückportierung von TYPO3 Flow auf TYPO3 CMS
für die Programmierung von TYPO3 CMS-Erweiterungen
(extensions)
...
Domain Driven Design
Hiking
Activity
WaterTravel AnimalWatching
Region
Host
City
Domain Driven Design
Activity
- activityType
- activityName
- activityHosts
- region
...
ActivityRepository
- add()
- upda...
Persistenz
basiert in Flow auf den Object Relational Manager (ORM) Doctrine
andere Persistenzlayer als relationale Datenba...
DQL – Data/Doctrine Query Language
/**
* finds animalWatching tours for a region
*
* @param QbusTraumzielmvDomainModelRegi...
Dependency Injection
class HikingController extends ... {
/**
* hikingRepository
*
* @var QbusTraumzielmvDomainRepositoryH...
Annotationen
weniger Code, lesbarer Code, wartbarer Code
z.B. für Validierung, Relationen zwischen Objekten (1:n, m:n usw....
Weitere Merkmale von Flow/Extbase
AOP – Aspektorientierte Programmierung
Modularisierung von modulübergreifenden Aspekten,...
TYPO3 Fluid
Mechanismus um „intelligente“ Templates zu entwickeln
klassisch TYPO3: „Markertemplates“
weit verbreitete Exte...
Template
Layout
Partial
Partial
{namespace tzmv=QbusTraumzielmvViewHelpers}
...
<f:security.ifHasRole role="Gastgeber">
<f:then>
<li>
<f:link.page pageUid...
ViewHelper
class BoolViewHelper extends AbstractViewHelper {
/**
* returns Ja/Nein due to the boolean input value
*
* @par...
Das Typo3 Universum
EXTBASE FLUID
Fazit
mit Typo3 und Extbase lassen sich komplexe Webanwendungen
mit sinnvollem Aufwand umsetzen
optimal insbesondere in de...
Traumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Traumziel MV:  Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid
Nächste SlideShare
Wird geladen in …5
×

Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid

729 Aufrufe

Veröffentlicht am

Vortrag auf den 9. Wirtschaftsinformatik-Tagen (WIWITA) an der Hochschule Wismar am 12. und 13. Juni 2014

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

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
729
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
15
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Traumziel MV: Relaunch eines Tourismusportals mit Typo3 Extbase und Fluid

  1. 1. Qbus Werbeagentur GmbH Heiligengeisthof 5 • 18055 Rostock • Tel. (0381) 4 61 39 0 • info@qbus.de • www.qbus.de Traumziel MV: Relaunch eines Tourismusportals mit Extbase und Fluid Vortrag auf den 9. Wirtschaftsinformatiktagen an der Hochschule Wismar Dipl.-Ing. Axel Wüstemann | Qbus Werbeagentur GmbH | awu@qbus.de
  2. 2. Qbus Portfolio - Logo - Corporate Design - Corporate Identity - Corporate Language - Websites - Webanwendungen - Redaktionssysteme - Content - Google Werbung - Suchmaschinenoptimierung - Zugriffsanalyse - Social Media Beratung
  3. 3. Projekt-Steckbrief Hotels als Gastgeber Basis des Monetarisierungskonzeptes: Hotels und Pensionen zahlen dafür, dass sie über Traumziel-MV.de ihren Gâsten einen ganz besonderen Mehrwert anbieten können
  4. 4. Projekt-Steckbrief Realisierung auf Basis Macromedia / Adobe Flash und MySQL gewachsene Struktur – viele „Hacks“ uneinheitliche Daten- und Codebasis fest im Code implementierte Sonderwünsche
  5. 5. Ziele des Relaunch Eliminierung von Flash als veralterte Technologiebasis vollstândige mobile Benutzbarkeit gute Erfassbarkeit von Suchmaschinen mit der Zielstellung, ein gutes Ranking für relevante Keywords zu erreichen Einführung eines Premiumbereiches Kartenmaterial auf Google Maps oder Open Street Map basierend zukunftsfâhige Technologiebasis für stabilen Betrieb, Wachstum und weiteren funktionalen Ausbau Typo3
  6. 6. TYPO3 CMS TYPO3 CMS existiert seit 1998 / ursprünglich entwickelt vom Dânen Kasper Skårhøj Nach mehreren Jahren im "Beta-Test" kam mit der Version 3.0 am 24. Mai 2002 die erste "richtige" Version auf den Markt.
  7. 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 Trâger,... > 6.000 Extensions, > 100.000 Entwickler weltweit, > 1.500 Agenturen weltweit Finanziert und unterstützt von der TYPO3 Association
  8. 8. Prinzip eines CMS Trennung von Inhalt (Content) und Darstellung (Template) Besonderheit TYPO3: TypoScript
  9. 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 unterstützt. Codename: TYPO3 Phoenix (bzw. TYPO3 5.0) Beginn der Entwicklung mit eigenem Framework TYPO3 Flow
  10. 10. TYPO3 Flow TYPO3 Flow ist ein PHP Framework Bits und Bytes Strukturen, Funktionen, Objekte Architektur und Lösungen für Standardaufgaben Prozessor Programmiersprache Framework Anwendung Lösung der Anwendungsaufgabe
  11. 11. Führende PHP Frameworks
  12. 12. TYPO3 Flow – MVC-Architektur Domain-Driven Design Model View Controller
  13. 13. TYPO3 Extbase Rückportierung von TYPO3 Flow auf TYPO3 CMS für die Programmierung von TYPO3 CMS-Erweiterungen (extensions) für die Modernisierung der Codestruktur von TYPO3 CMS
  14. 14. Domain Driven Design Hiking Activity WaterTravel AnimalWatching Region Host City
  15. 15. Domain Driven Design Activity - activityType - activityName - activityHosts - region ... ActivityRepository - add() - update() - findByHost() - findByRegion() ...
  16. 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. 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. 18. Dependency Injection class HikingController extends ... { /** * hikingRepository * * @var QbusTraumzielmvDomainRepositoryHikingRepository * @inject */ protected $hikingRepository; public function listByRegionAction(Region $region) { $hikings = $this->hikingRepository->findByRegion($region); ... }
  19. 19. Annotationen weniger Code, lesbarer Code, wartbarer Code z.B. für 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. 20. Weitere Merkmale von Flow/Extbase AOP – Aspektorientierte Programmierung Modularisierung von modulübergreifenden Aspekten, wie z.B. Logging, Security usw. AOP gibt es nur in Flow, nicht in Extbase Signal Slot Implementierung des Observer Patterns für Event-gesteuerte Ablâufe
  21. 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. 22. Template Layout Partial Partial
  23. 23. {namespace tzmv=QbusTraumzielmvViewHelpers} ... <f:security.ifHasRole role="Gastgeber"> <f:then> <li> <f:link.page pageUid="157" ...> <i class="fa fa-power-off"></i> Abmelden </f:link.page> </li> </f:then> <f:else> ... </f:else> </f:security.ifHasRole> <nav id="navigation"> <f:cObject typoscriptObjectPath="lib.extTzmv.mainMenu"/> </nav> <f:render section="headerMenu" /> <f:comment>Seiteninhalt</f:comment> <div id="main"> <div class="container"> <f:render section="content" /> </div> </div>
  24. 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. 25. Das Typo3 Universum EXTBASE FLUID
  26. 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 möglich – insbesondere mit Unterstützung des grafischen Kickstarters mit Fluid lâsst sich recht elegant arbeiten, bei komplexeren Templates ergeben sich Strukturierungs- und letztendlich Wartungs-Probleme größte Herausforderung war die sinnvolle „Responsive“-Umsetzung – weitere Optimierungen notwendig Möglich aber noch nicht umgesetzt: testgetriebene Entwicklung

×