Hallo,
es scheint unter Contao 4 nicht mehr möglich zu sein mittels $this->import eine Klasse aus einem anderen Plugin zu laden. Gibt es hier eine andere Möglichkeit dies zu tun, oder muss hier etwas beachtet werden?
Viele Grüße und vielen Dank
Hallo,
es scheint unter Contao 4 nicht mehr möglich zu sein mittels $this->import eine Klasse aus einem anderen Plugin zu laden. Gibt es hier eine andere Möglichkeit dies zu tun, oder muss hier etwas beachtet werden?
Viele Grüße und vielen Dank
Mit $this->import() instanzierst du ein Objekt oder Singleton einer Klasse. Aber dieser Weg ist ohnehin Deprecated. Warum brauchst du das bzw. was genau möchtest du machen?
habe darüber in meinem alten Modul Funktionen aus einer anderen Klasse aufgerufen. Beispiel:
Allerdings liefert das iS-object schon false zurück, wobei method_exists hier keinen Fehler zurückwirft. Jedoch funktioniert der Aufruf so nicht mehr.PHP-Code:
$this->import($restrictions['callbackFunction']['class']);
if(is_object($restrictions['callbackFunction']['class']) && method_exists($restrictions['callbackFunction']['class'], $restrictions['callbackFunction']['function']))
{
$response = $restrictions['callbackFunction']['class']->$restrictions['callbackFunction']['function'](Input::post('paramId'), $restrictions, $mxdResult);
Nimm doch einfachPHP-Code:
$cb = \Contao\System::importStatic($restrictions['callbackFunction']['class']);
if (is_object($cb) && method_exists($cb, $restrictions['callbackFunction']['function'])) {
$response = $cb->{$restrictions['callbackFunction']['function']}(\Contao\Input::post('paramId'), $restrictions, $mxdResult);
// …
}
Super funktioniert! Kannst du mir bitte noch erklären warum importStatic und warum du \Contao\ davor schreibst? Sollte man das lieber so machen?
Die "import" Funktion ist eine Funktion, die du aus einer Parent Klasse erbst, mit der du automatisch ein Objekt einer Klasse instanzieren lassen kannst und automatisch deinem eigenen Objekt zu gewiesen wird. Als zweiten Parameter kannst du den Namen angeben. Ob das für dich so sinnvoll ist, musst du selbst entscheiden.
Ansonsten kannst du dir diese Objekte eben auch mit \Contao\System::importStatic() erzeugen lassen.
\Contao habe ich geschrieben, da du dich eigentlich in deiner eigenen Klasse nicht im Contao Namespace befinden solltest …
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen