Startseite
Teil 2 der Blogreihe Extension-Entwicklung mit TYPO3 Extbase & Fluid

Extension-Entwicklung mit Extbase & Fluid: Teil 2 – Das Grundgerüst

Click Hier wenn du die Social-Plugins aktivieren willst.

Start verpasst? Hier geht es zum 1. Beitrag der Blogreihe
„Extension-Entwicklung mit TYPO3 Extbase & Fluid“: Entstehung der Blogreihe, Idee & Datenmodellierung

 

Teil 2: Das Grundgerüst

 

PhpStorm TypoScript und Fluid Unterstützung

Bevor es richtig losgeht, wird die PHP Entwicklungsumgebung (IDE) auf die Arbeit mit TYPO3 vorbereitet. Ich benutze wie schon erwähnt PhpStorm. Für diese IDE gibt es ein TypoScript-Plugin, das das Highlighting übernimmt. Darüber hinaus kann man sich mittels XSDSchema die Autovervollständigung und das Syntax Highlighting für Fluid integrieren. Da diese beiden Features die Arbeit sehr erleichtern, gehe ich zunächst darauf ein, wie man diese integriert.

Um die TypoScript-Unterstützung zu bekommen kann man ein Plugin installieren, das dann im nächsten Schritt mit einem bestimmten Dateinamenformat verknüpft werden muss. In den Einstellungen von PhpStorm muss dazu im Bereich Plugins das TypoScript-Plugin installiert und aktiviert werden. Der folgende Screenshot zeigt wie:

Installation und Aktivierung des TypoScript-Plugins.

Installation und Aktivierung des TypoScript-Plugins.

 

Danach steht im Bereich Filetypes die Grundeinrichtung für TypoScript bereit, mit der man bereits arbeiten kann.

TypoScript in File Types einrichten

TypoScript in File Types einrichten

 

Ähnlich einfach ist die Aktivierung der Fluid-Unterstützung. Zuerst braucht man die XSDSchema-Datei, die die Beschreibung für alle von der Extension Fluid verwendeten Viewhelper in der aktuell bereitgestellten Version enthält. Die Datei steht unter http://fluidtypo3.org/ frei verfügbar zum Download bereit. Hier findet man auch einen Mini Guide, wie man die Datei richtig integriert. Darüber hinaus gibt es unter http://buzz.typo3.org/ eine etwas ausführlichere Integrationsanleitung für PhpStorm, auch wenn diese für die inzwischen veraltete Version 6.1 geschrieben wurde. Die Adresse der XSD stimmt dort nicht mehr, ansonsten ist die Anleitung verwendbar. Die richtige Download URL lautet: http://fluidtypo3.org/schemas/fluid-master.xsd.

 

Das Grundgerüst

Ich gehe davon aus, dass Du eine lauffähige TYPO3-Instanz hast, weißt, wie Du Deine IDE benutzt und schon Erfahrung mit der Extension-Programmierung hast. Auf Unterschiede und Neuerungen in 6.2 gehe ich ein, aber Du solltest schon wissen was ich meine, wenn ich Dir sage Du sollst den Frontend-Cache leeren. Weißt Du nicht? Na gut, ich streue Links mit ein, und Screenshots, aber PHP solltest Du beherrschen.


Extension anlegen

Wer schon mit den ‘alten’ Versionen von TYPO3 gearbeitet hat, kennt wahrscheinlich den Extension Kickstarter, der bei der Erstellung von pi_base Extensions eine unschätzbare Hilfe war – und ist. Für Extbase gibt es eine ähnliche Unterstützung, den Extension-Builder (extension_builder). Der Extension-Builder kann wie jede Extension über das TER bezogen und mit dem Extension Manager installiert werden. Für den Fall, dass Probleme auftreten, kann man sich oft auch mit der aktuellsten Entwicklungsversion behelfen. Diese sowie Bugreports, Workarounds und eine Kontaktmöglichkeit zum Autorenteam dieser Extension finden sich unter http://forge.typo3.org/.

Installation des Extension-Builder

Installation des Extension-Builder

 

Für dieses Tutorial werde ich den Extension-Builder allerdings nicht benutzen. Um die Zusammenhänge erläutern zu können, ist es von Vorteil jeden Schritt manuell zu machen.

Der erste Schritt ist das initiale Anlegen der Dateistruktur. Um das Nachvollziehen des Tutorials zu erleichtern, werde ich im Laufe der Artikel immer wieder zip-Archive des aktuellen Standes veröffentlichen. Das erste kommt, wenn die Extension installiert werden kann und im Backend ein Modul zur Verfügung steht, an dem dann weiter gearbeitet werden kann.

Anlegen der Dateistruktur

Anlegen der Dateistruktur

 

Die Ordner sind alle leer – und im Laufe des Projekts werden sicher noch weitere hinzukommen – sie werden aber im ersten Schritt gebraucht, bevor wir überhaupt unsere Extension zum ersten Mal in einem Backend aufrufen können. Zusätzlich werden die drei Konfigurationsdateien benötigt, damit das Backend einen Einstiegspunkt hat. Die ext_emconf.php habe ich hierfür von realurl kopiert. Jede Extension ist dafür recht, realurl ist auf meinem System einfach vorhanden, wie man am Screenshot sieht. Die beiden anderen Dateien sind ebenfalls leer.

System-Extensions enthalten in der Version 6.2 bereits alle eine composer.json-Datei, die die Installation des Systems mit composer ermöglichen soll. In dem Bereich sind die Arbeiten allerdings noch nicht abgeschlossen. Ich verzichte deshalb vorläufig (heute ist der 25.04.2014) auf eine composer. json. Sobald das Format endgültig feststeht, werden wir eine hinzufügen.

Werfen wir zunächst einen näheren Blick auf die ext_emconf.php, mit deren Angaben die TYPO3 Extension Repository (TER) und der Extension Manager (EM) die Extension identifizieren und behandeln. Mit Wirkung von Release 6.2 müssen Extensions ihre Dependencies klar angeben, sonst kann man sie nicht ins TER hochladen. Auch der EM soll dementsprechend nachgerüstet werden, so dass er nur Extensions zur Installation anbietet, die den Systemvoraussetzungen entsprechen.

Identifizierung der Extension ext_emconf.php mit dem TYPO3 Extension Repository (TER) und Extension Manager (EM)

Identifizierung der Extension ext_emconf.php mit dem TYPO3 Extension Repository (TER) und Extension Manager (EM)

 

Wir garantieren für unsere Extension nur eine Kompatibilität für die Version 6.2, und vorläufig haben wir keine weiteren Abhängigkeiten. Wichtig ist, diese Constraints im Hinterkopf zu behalten, um dem Benutzer insbesondere bei TER-Extensions verlässliche Informationen anzubieten.

 

Weiter geht es im nächsten Beitrag mit Model und Controller als erste Implementierung.

 

Start verpasst?
Blogreihe Extension-Entwicklung mit TYPO3 Extbase & Fluid
Teil 1: Entstehung der Blogreihe, Idee & Datenmodellierung

4 Gedanken zu “Extension-Entwicklung mit Extbase & Fluid: Teil 2 – Das Grundgerüst

  1. anja-leichsenring Post author

    Das mit der Fluid Integration geht inzwischen auch einfacher, schaut mal hier: http://typo3.helmut-hummel.de/post/85031122475/xml-schema-auto-completion-in-phpstorm

    Kommentar
  2. anja-leichsenring Post author

    und noch eine gute Neuigkeit: es gibt ein neues Plugin fuer TypoScript, das auch auto completion kann: http://www.sgalinski.de/open-source/typoscript-plugin.html

    Kommentar
    1. Hallo Frau Leichsenring,

      super Artikel…. sehr gut und interessant geschrieben!

      VG
      TD

      Kommentar
  3. Carsten Kettner

    Vielen Dank für den guten 2. Teil dieser Serie. Ich würde nur keine „auto generated“ ext_emconf.php beispielhaft anzeigen, wenn Sie den „Extension Builder allerdings nicht benutzen“ wollen. Aber damit nörgele ich lediglich am Dekor des Tellers rum, wo die Suppe perfekt gelungen ist. *thumbs up*

    Kommentar

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>