Zum Inhalt springen

Ein include einbinden, wenn man namespce benutzt?

Erstellt am 10. November 2014 · 3 Antworten · letzte Antwort am 10. November 2014

Tags: Frage

intensivstation ·

Ich habe eine ganz modere Extension geschrieben, die Namespaces benutzt.
Jetzt möchte ich aber z.B. die Bibliothek von Sofortüberweisung einbauen.
Das klappt ja normalerweise so:

require(dirname(__FILE__).'/../Utility/Sofortueberweisung.php');
$Sofortueberweisung = new Sofortueberweisung($configkey);

Da ich nun aber Namespaces verwende, klappt das so nicht. Es kommt die Fehlermeldung
Fatal error: Class 'Firma\Extension\Controller\Sofortueberweisung' not found in xyz
Was kann man machen, wenn man nicht alles auf Namespaces umstellen will?
Hiermit klappt es übrigens auch nicht:

$Sofortueberweisung = new \Firma\Extension\Utility\Sofortueberweisung($configkey);
intensivstation ·

Das Problem ist nicht das require, sondern das new.
Hiermit kommt die selbe Fehlermeldung:

require \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('extension', 'Classes/Utility/Sofortueberweisung.php');

Die Datei wird schon eingebunden, aber die Klasse wird dennoch nicht gefunden.

intensivstation ·

Folgendes funktioniert übrigens, wenn ich diese Zeile an Ende der requireten Klasse verschiebe:

$Sofortueberweisung = new Sofortueberweisung($configkey);

Keine schöne Lösung, aber wenn keiner die richtige Lösung kennt, muss es wohl so gemacht werden...