Ergebnis 1 bis 11 von 11

Thema: Fatal error: Call to undefined method Composer\Autoload\ClassLoader::setPsr4() in ...

  1. #1
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard Fatal error: Call to undefined method Composer\Autoload\ClassLoader::setPsr4() in ...

    Ich schon wieder. Schön langsam werd ich echt kirre
    Seit Pfingsten sch*** ich mit einer Seite herum, und immer wieder hab ich Probleme mit dem Composer. Zuerst die Deinstallation von theme+, dann diese Sache mit den Formularen von gestern/heute ... na egal, das nur am Rande

    Folgendes Problem:

    Code:
    Fatal error: Call to undefined method Composer\Autoload\ClassLoader::setPsr4()
    in /.../vendor/composer/autoload_real.php on line 33
    Wie hab ich das geschafft?
    Hatte die madeyourday/rocksolid-antispam installiert, die wurde auch im Composer mit grüner Versionsnummer angezeigt, trotzdem war nix im Ordner system/modules zu sehen. Auf github gefragt, Antwort bekommen, ich solle mal System › Paketverwaltung › Werkzeuge › erneute Synchronisierung probieren. Hab ich gemacht, inkl. DB-Update, der rocksolid-antispam Ordner war dann unter system/modules vorhanden, nur das entsprechende Formularfeld war nicht da. Also mal auf Verdacht eine vollständige Systemwartung gemacht (wirkt ja manchmal ) - als Ergebnis dann folgendes:

    Code:
    Warning: in_array() expects parameter 2 to be array, null given in system/modules/core/library/Contao/System.php on line 122
    
    #0 [internal function]: __error(2, 'in_array() expe...', '/...', 122, Array)
    #1 system/modules/core/library/Contao/System.php(122): in_array('getInstance', NULL)
    #2 system/modules/core/classes/PurgeData.php(81): Contao\System->import('PurgeTwigCache')
    #3 system/modules/core/modules/ModuleMaintenance.php(60): Contao\PurgeData->run()
    #4 system/modules/core/classes/BackendModule.php(100): Contao\ModuleMaintenance->compile()
    #5 system/modules/core/classes/Backend.php(409): Contao\BackendModule->generate()
    #6 contao/main.php(142): Contao\Backend->getBackendModule('maintenance')
    #7 contao/main.php(293): Main->run()
    #8 {main}
    
    
    Fatal error: Class 'PurgeTwigCache' not found in /.../system/modules/core/library/Contao/System.php on line 122
    Gut, einmal auf den "Zurück-Button" im Browser, dann kam eben die oben genannte Fehlermeldung. Die Suchergebnisse im Forum und auf Github bringen mich nicht recht weiter ... ich habe diesen Code

    Code:
    $class = new \ReflectionClass('Composer\\Autoload\\ClassLoader');
    var_dump($class->getFileName());
    exit;
    in die initconfig.php eingetragen, wenn ich die aufrufe, krieg ich aber nur eine 403

    Also dieses Twig hatte zuvor auch schon Fehlermeldungen geworfen bei der Systemwartung - ich hatte das noch auf meiner To-Do-Liste stehen - bisher war aber nie die ganze Seite abgestürzt. Ich muss zu meiner Schande gestehen, dass ich keine Ahnung habe, warum Twig hier überhaupt installiert ist

    Was nun?

  2. #2
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    Kleines Update (irgendwie wird's jetzt ein bissl strange):

    Gestern (also am 20.09.) habe ich ein Restore beauftragt und war damit wieder bei der Version vom 19.09. Was ich dabei NICHT bedacht hatte, war, dass ich damit ja den Fehler aus diesem Thread wieder am Tablett hatte
    Wobei das ja nicht weiter schlimm war, denn das Problem hatten wir ja gelöst. Ich wollte also einfach diese Schritte nochmal nachvollziehen. Also die installed.json und die composer.json verglichen und wieder entsprechend angepasst etc. Beim Pakete aktualisieren dann ... wieder Fatal error: Call to undefined method Composer\Autoload\ClassLoader::setPsr4() mit weißer Seite im BE und FE.

    Also habe ich dann nochmal ein Restore beauftragt, um wieder auf dem Stand vom 20.09. zu sein. Das wurde auch zügig durchgeführt und dann ... ging die Seite wieder Der Fehler war weg. Wie kann denn DAS sein?

    Jedenfalls hab ich mir dann gleich eine Kopie davon gemacht (jaja, aus Schaden wird man klug) und dann versucht, twig zu deinstallieren, was mir webstar hier schon vorgeschlagen hat (und was ich wieder verschwitzt hatte )
    Das funktioniert aber nicht. Weder über den "normalen" Weg über den Composer, noch über eine .skip-Datei im twig-Ordner, und auch nicht, wenn ich den twig-Ordner aus system/modules lösche und dann die Erweiterung im Composer deinstalliere.

    Das hier hab ich dann auch nochmal versucht, wobei bei mir immer nur dieselbe Fehlermeldung ausgegeben wird, und nicht, wie in Punkt 2 beschrieben, der Pfad des ClassLoaders anstelle des Composer Fehlers.

    Was kann ich noch versuchen?

    Grüße, bibib
    Geändert von bibib (21.09.2014 um 08:57 Uhr)

  3. #3
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von bibib Beitrag anzeigen
    Ich schon wieder. Schön langsam werd ich echt kirre
    Also... ähm... nein bitte nicht kirre werden, du bist unsere beste Testerin aktuell ^^

    Das mit der initconfig ist eigentlich eine gute Idee, solange man überhaupt noch dahin kommt, es scheint als ob er vorher in dem initializeSystemHook hängen bleibt, was vermutlich bei der twig Extension der Fall sein wird.
    Füge das Code Snippet
    PHP-Code:
    $class = new \ReflectionClass('Composer\\Autoload\\ClassLoader');
    var_dump($class->getFileName());
    exit; 
    einfach mal in deine initconfig.php vor den Aufruf des Hooks auf, das müsste Zeile 236 sein:
    https://github.com/contao/core/blob/...alize.php#L236

  4. #4
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    Bringt leider auch nichts. Gleiche Ausgabe wie vorher, also nur die Fehlermeldung.

  5. #5
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Dann trag das in die vendor/composer/autoload_real.php vor die Zeile 33 ein.

  6. #6
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    War bei mir vor Zeile 31, aber jetzt wird was ausgespuckt:

    string(111) "/.../system/modules/assetic/classes/vendor/composer/ClassLoader.php"

  7. #7
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ah, dann ist die assetic Extension noch aus dem ER2 installiert, lösch mal system/modules/assetic.
    Falls du noch Theme+/Assetic installiert hast, müsstest du danach noch mal ein Resync machen.

  8. #8
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    Okay, assetic gelöscht, twig auch gelöscht und die DB aktualisiert und die Seite ist wieder da.

    Zwei Fragen noch:

    - In der Systemwartung hab ich plötzlich einen Punkt 'tl_requestcache' drin - woher kommt der, darf der bleiben, oder wie bring ich den wieder raus?
    request-cache.JPG

    - im Composer wird unter den installierten Erweiterungen immer noch contao-legacy/assetic aufgelistet. Muss ich die jetzt durch bit3/contao-assetic ersetzen? Oder kann das überhaupt raus? Ich kann mich überhaupt nicht erinnern, wo das herkommt, wahrscheinlich irgendwie mit theme+ mitgekommen damals? Wenn irgendeine andere Erweiterung assetic benötigt, dann sollte der Composer die richtige Version ja automatisch mitinstallieren, oder?
    Und wenn ich im Composer "Zeige abhängige Pakete" anhake, dann werden unter contao/core immer noch contao-legacy/twig und contao-legacy/assetic aufgelistet. Mir fehlt da voll der Durchblick also vor allem beim Thema "Umstieg vom ER auf den Composer und contao-legacy-Erweiterungen".

  9. #9
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Der "Umstieg vom ER auf den Composer und contao-legacy-Erweiterungen" ist eigentlich gar nicht so schwer.
    Beim Migrieren zieht Composer dir allerdings alle Pakete in deine Liste, die vorher installiert waren. Egal ob es Abhängigkeiten sind oder nicht. Das ER2 wusste selbst auch nichts davon, hast du aus dem ER2 Client theme_plus deinstalliert, wäre assetic auch übrig geblieben.

    Im Prinzip kannst du alle Pakete entfernen, wo du dir sicher bist dass du diese nicht benötigst (wie bspw. assetic). Sollten sie als Abhängigkeit benötigt werden, wird Composer diese im Hintergrund installiert halten.

  10. #10
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    Ja, klar, die Migration an sich geht automatisch, aber bei den Abhängigkeiten bin ich ziemlich durcheinandergekommen, zumindest in diesem Fall ... aber egal, jetzt scheint alles zu passen, ich glaube, es ist ausgestanden

    Ansonsten liest du eh bald wieder von mir

    Danke!

  11. #11
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    +1

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
  •