PhpStorm Live Templates für Extbase

PhpStorm

PhpStorm bietet jede menge Funktionen an, eine sehr nette Funktion davon ist das Live-Template. Live-Templates dienen dazu, mit einem Schlüsselwort einen kompletten Codeabschnitt automatisch zu generieren. Dabei kann man Variablen definieren die dann individuell gesetzt werden können und den Code vervollständigen.

Nachdem ich nun mehrmals ein repository in TYPO3 mit Extbase via „injectTestRepository“ erstellen musste, stellte ich fest das dies eins der Dinge ist die richtig aufhalten können.

Ich habe mir zwei Live-Templates erstellt mit dem ich ein „injectRepository“ und ein allgemeines „injectObject“ erstellen lassen kann und möchte Sie Euch heute einmal vorstellen.

Die Live-Templates kann man in PhpStorm über

File > Settings > IDE Settings > Live Templates

erstellen.

Object Injection Live Template

Template text:

/**
 * @var Tx_$DOMAIN_OBJECT$
 */
protected $$$VAR_NAME$;

/**
 * Injection of Tx_$DOMAIN_OBJECT$
 *
 * @param Tx_$DOMAIN_OBJECT$ $$$VAR_NAME$
 */
public function inject$NAME$(Tx_$DOMAIN_OBJECT$ $$$VAR_NAME$) {
	$$this->$VAR_NAME$ = $$$VAR_NAME$;
}$END$

Das ganze sollte dann in etwa so aussehen:
PHPStorm injectRepository Einstellungen
Nach einem klick auf „Edit variables“ sollte man die Variablen wie folgt einstellen:
PHPStorm injectRepository Variablen

Nun kann man über den vorher definieren Shortcut (Standard ist Strg+J) im PHP-Code das Live Template einfügen:
Live Template einfügen

und man erhält den definierten Codeblock.
Die erste Eingabe die man macht ist der Name des Objektes das man injecten möchten, die Autovervollständigung sollte aktiviert werden:

Live Template: injectObject Schritt 1

Nachdem man die Klasse ausgewählt hat und die Auswahl bestätigt, kommt man zum nächsten Eingabeblock. Hier muss der Name des Objektes in letzzer Ebene eingegeben werden, bei der Eingabe merkt man wie sich der dazugehörige Variablenname automatisch mitändert:
Live Template: injectObject Schritt 2

Das Ergebnis ist nun ein vollständiger Codeblock mit allen nötigen PHPDoc Angaben um das Objekt erfolgreich von Extbase generieren zu lassen. Ein Abwandlung in eine FLOW3-Form wäre da ohne weiteres möglich.

Repository Injection Live Template

Der Live Template Text:

/**
 * @var Tx_$PACKAGE$_Domain_Repository_$NAME$
 */
protected $$$VAR_NAME$;

/**
 * Injects repository of $NAME$
 *
 * @param Tx_$PACKAGE$_Domain_Repository_$NAME$ $$$VAR_NAME$
 */
public function inject$NAME$(Tx_$PACKAGE$_Domain_Repository_$NAME$ $$$VAR_NAME$) {
	$$this->$VAR_NAME$ = $$$VAR_NAME$;
}$END$

Einstellungen:

Variablen:

Ergebnis:
Live Template: inject Repository Ergebnis

Auch wenn das Einrichten oftmals ein bisschen herumprobieren benötigt, erspart man sich auf die Dauer einiges an arbeit.
Sofern man diese Funktion natürlich auch aktiv einsetzt! 🙂

3 Comments

  1. Jan sagt:

    Hey!

    Schöner Artikel, kannst du das fehlende Bild noch mal uploaden oder neu verknüpfen?

Schreibe einen Kommentar

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

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*

Sicherheitsfrage * Time limit is exhausted. Please reload the CAPTCHA.