[TYPO3-german] Zusätzliche Klasse für eine Extension anlegen

Stephan Schuler Stephan.Schuler at netlogix.de
Mon Jun 1 15:44:55 CEST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hallo Dirk.

Wenn Du eine Klasse "nicht in den Fileadmin, aber in einen generellen Lib-Ordner" legen willst -- wo genau stellst Du dir denn vor dass das ist? Auf Rootebene *neben* dem Fileadmin ein Ordner "Lib-PHP-Klassen"? Das ist schon arg unschön.

Du solltest Dich auf eine Systematik einigen, die sich merken lässt und die ggf. erweiterbar ist.

Das fängt zum Beispiel bei der Position deiner Templates an. HTML, JS, CSS und TypoScript braucht eigentlich jede Installation früher oder später. HTML in Form eines Seitenlayouts auf Fluidbasis finde ich persönlich zwar enorm schön weil es aufgeräumt und übersichtlich ist, das Seitenlayout könnte man zur Not aber auch vollends in TypoScript bauen. Spätestens wenn Du aber eigenes Markup für Extensions brauchst wirst Du um HTML-Fragmente (egal ob für pibase-basierte oder Extbase-basierte Extensions) nicht herum kommen. Kurz: Diese vier Dateitypen hat man eigentlich in jedem Projekt.
Nun die Frage: Wo genau sollen die zu liegen kommen?
Ich würde hier empfehlen, zunächst eine Extension "{$projektname}" anzulegen. In der ist sowas (also HTML, CSS, JS und TypoScript) gut aufgehoben und man hat es gut von Dateien für Redakteure getrennt. Eben nicht "fileadmin/redakteurszeugs" und "fileadmin/webseitenkonfiguration" sondern sehr explizit: "fileadmin" für Redakteure, "typo3/conf/{$projektname}" für die Seitenkonfiguration inklusive Templates.

Und jetzt ist auch schon die Extension vorhanden, in der man die von Dir gewünschte Zusatzklasse gut unterbringen kann.

Die Projektextension kann man dann so aufbauen:
* "EXT:{$projektname}/Resources/Public/Templates" für HTML
* "EXT:{$projektname}/Resources/Public/Styles" für CSS
* "EXT:{$projektname}/Resources/Public/JavaScript" für JS
* "EXT:{$projektname}/Configuration/TypoScript" für TS
* "EXT:{$projektname}/Configuration/PageTS" für Page-TS
* "EXT:{$projektname}/Classes" für Klassen

Damit hat diese Extension dann exakt die Struktur die auch eine Extension "in der Kundendomäne" haben sollte.

Wenn es dann umfangreicher wird, wenn also z.B. praktisch alle Templates aus "EXT:news" überschrieben werden, das TypoScript ganz anders wird und der ein oder andere neue Newstyp dazu kommt und deshalb auch neue Newsklassen erfordert, kann man diese Dateien dann aus der Extension "{$projektname}" herausnehmen und in eine neue Extension "{$projektname}news" überführen. Natürlich *nicht* wenn es sich nur um eine einzelne HTML-Datei handelt. Wenn man aber ein Partial, zwei Templates, einen ViewHelper an HTML-Dateien, zwei oder drei Thumbnail-Default-Images für Newstypen und ein angepasstes "Configuration/TCA/Overrides/tx_news_domain_model_news.php" hat ist der Punkt gekommen.

Es mag Projekte geben bei denen sich eine andere Struktur ähnlich gut anbietet oder vielleicht sogar besser ist. Bei größeren Projekten läuft es bei uns aber immer auf diese Struktur hinaus. Und damit man sich nicht bei jedem neuen Projekt an eine neue Umgebung anpassen muss, halten wir eine solche Strukturierung bei allen Projekten ein, egal ob dafür drei Manntage oder mehrere Mannmonate geplant sind.

Gruß,



Stephan Schuler
Web-Entwickler | netlogix Media

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Web: media.netlogix.de




netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Web: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



- -----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Chris Wolff - AERTiCKET AG
Gesendet: Montag, 1. Juni 2015 09:05
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Zusätzliche Klasse für eine Extension anlegen

Hallo Dirk,
es ist das Sauberste deine Extra Classe in eine Eigene Extension zu packen.
So hast du einen Definierten weg diverse Konfigurationen zu laden, abhängigkeiten zu defineren.
Es lässt sich gut Versionieren.
Und die installation / deinstallation ist auch klar geregelt.

Und der Overhead ist nicht so Groß. Der extension builder hilft dir dabei das grundgerüst zu erzeugen.
Dann must du lediglich deine eine Classen hinzufügen.

gruss

- -----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von DirkHo
Gesendet: Sonntag, 31. Mai 2015 21:09
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] Zusätzliche Klasse für eine Extension anlegen

Hallo Bernd,

nein, im Fileadmin wollte ich es eigentlich eher nicht. Fände ich unsauber. Irgendein genereller lib-Ordner, o.ä. hätte ich mir gedacht.
Eine eigene Extension für nur eine Klasse hätte ich etwas viel Overhead gefunden?!

Da ich mittlerweile gesehen habe, dass ich wohl noch etwas mehr überschreiben muss werde ich sie vielleicht komplett selbst bauen, statt eine Klasse zu überschreiben oder deutlich mehr Klassen überschreiben müssen.

Vielen Dank und viele Grüße,

Dirk

Am 31.05.2015 um 12:10 schrieb Bernd Pier:
> Am 30.05.15 23:52, schrieb DirkHo:
>> Hallo zusammen,
>>
>> ich verwende eine Extension, bei der über TypoScript angegeben werden
>> kann, welche Klasse für einen Import verwendet wird. D.h., ich könnte
>> auch eine eigene angeben, was ich gerne würde, da ich die zu
>> verarbeitenden Daten gerne anders aufbereitet hätte.
>>
>> Hierzu würde ich eine eigene Klasse anlegen, die von der bestehenden
>> erbt.
>>
>> Meine Frage nun: Muss ich dafür eine eigene Extension anlegen oder
>> gibt es in Typo3 einen Bereich für eigene Klassen, die dann auch vom
>> autoloader verwendet werden? Ungern würde ich sie innerhalb der
>> Extension ablegen.
>>
>> Vielen Dank und viele Grüße,
>>
>> Dirk
> Hallo Dirk,
>
> wo soll denn deine Klasse liegen? in fileadmin? Warum nicht innerhalb
> einer eigenen Extension ablegen?
>
> LG
>
> Bernd

_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-----BEGIN PGP SIGNATURE-----
Version: PGP Universal 3.3.2 (Build 15917)
Charset: utf-8

wpUDBQFVbGHZpp0IwsibV8MBCM/oA/9nGh0/y0i5uE12NfpukU8uRC4Iya92xQ+M
xH/uSLdovhtWyO+HiFb9JRruskfIxoYRn87loSTdNVKIoEirKdcL7um3sc5cJ+D4
jhvQWjO/GrfTcGjk4n1DtSed51v1UvpzhyVY1wJJ0uXJhw1Du4QW/NNlYMYXftzV
Ki1UNBInEw==
=B0KN
-----END PGP SIGNATURE-----


More information about the TYPO3-german mailing list