Zum Inhalt springen

Das Arbeiten mit den Namespaces

Erstellt am 19. September 2012 · 3 Antworten · letzte Antwort am 8. Oktober 2012

Tags: Frage

MajPay ·

Hallo,

Da ich ja einige Probleme bei der Umstellung von der Alpha3 auf die Beta1 hatte wollte ich meine Test-Extensions unter Verwendung der Namespaces neu schreiben.

Habe nun also alle Exensionklassen wie folgt abgeändert:

Aus:

Tx_TestCompany_Domain_Model_Company

Wurde (zb):

\VendorName\TestCompany\Domain\Model\Company

In der Model-Datei sieht das dann so aus:

namespace VendorName\TestCompany\Domain\Model;

class Company extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {}

Das habe ich in allen Model, Repositories und Controllern so gemacht. Die ext_localconf.php, ext_tables.php, ext_emconf.php usw habe ich nicht bearbeitet.

Nun sucht mir Extbase aber weiterhin nach dem Controller:

Tx_TestCompany_Controller_CompanyController

Und findet natürlich nichts.

Gibts irgendwo eine brauchbare Ressource zum Thema?

MajPay ·

Mir fällt nur eine wirklich bescheidene Lösung für ein Problem ein, dass es vermutlich garnicht gibt weil ich einfach irgendwo was nicht deklariert habe.

Ich könnte in jeder Datei eine Zweite Klasse mit dem Namen nach altem Schema anlegen und die eigentlich Klasse erweitern.

Also zB:

namespace VendorName\TestCompany\Domain\Model;

class Company extends \TYPO3\CMS\Extbase\DomainModel\AbstractEntity {

}

namespace \;

class Tx_TestCompany_Domain_Model_Company extends Company {}

Nun würde das wohl wieder funktionieren, wäre aber alles andere als elegant. Wie ist hier die Konvention? Was muss ich zusätzlich beachten, wenn ich mit den Namespaces für meine Extension arbeite?

Versucht habe ich das nun noch nicht...

Wäre wirklich toll, wenn mir jemand helfen könnte.

MajPay ·

Kann mir denn da keiner weiterhelfen?

Muss ich im Autoloader irgendwie deklarieren, dass ich mit den Namespaces arbeite? Wie bringe ich Typo3 dazu nicht nach der Klasse Tx_Extensionname_Controller zu suchen, sondern \Vendor\Extensionname\Controller? Bin für jede Hilfe dankbar.

tomtom86 ·

Hallo MajPay,

so funktioniert es bei mir. Und zwar ist die folgende Zeile in der ext_localconf.php dafür relevant!

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'VendorName.'. $_EXTKEY, $pluginName, $controllerActions
);

Gruß Tommy