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?
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.
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.
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