Ergebnis 1 bis 6 von 6

Thema: $this->import Klasse aus anderem Plugin importieren

  1. #1
    Contao-Nutzer
    Registriert seit
    25.02.2010.
    Beiträge
    89

    Standard $this->import Klasse aus anderem Plugin importieren

    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

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.094
    Partner-ID
    10107

    Standard

    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?

  3. #3
    Contao-Nutzer
    Registriert seit
    25.02.2010.
    Beiträge
    89

    Standard

    habe darüber in meinem alten Modul Funktionen aus einer anderen Klasse aufgerufen. Beispiel:

    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); 
    Allerdings liefert das iS-object schon false zurück, wobei method_exists hier keinen Fehler zurückwirft. Jedoch funktioniert der Aufruf so nicht mehr.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.094
    Partner-ID
    10107

    Standard

    Nimm doch einfach
    PHP-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);
        
    // …


  5. #5
    Contao-Nutzer
    Registriert seit
    25.02.2010.
    Beiträge
    89

    Standard

    Super funktioniert! Kannst du mir bitte noch erklären warum importStatic und warum du \Contao\ davor schreibst? Sollte man das lieber so machen?

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.094
    Partner-ID
    10107

    Standard

    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

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •