Seite 1 von 1

[solved] cAutoload::addClassmapConfig() must be array

Verfasst: Di 17. Jun 2014, 13:16
von rethus
Ich habe gerade eine Contenido-Installation von Lokal, auf den Server geladen.
Frontend wird gar nicht angezeigt, zum Backend erhalte ich folgende Meldung:

Code: Alles auswählen

Catchable fatal error: Argument 1 passed to cAutoload::addClassmapConfig() must be of the type array, integer given, called in /var/www/gmbh.de/contenido/classes/class.autoload.php on line 124 and defined in /var/www/test.gmbh.de/contenido/classes/class.autoload.php on line 156
Geliefert wird dort ein String, erwartet scheinbar ein Array.

Hier die besagte stelle im Code:

Code: Alles auswählen

  $file = $cfg['path']['contenido_config'] . 'config.autoloader.php';
        $arr = include_once($file);
        if ($arr) {
           self::addClassmapConfig($arr);
        }
Hier gibt er 1 zurück (meiner Meinung nach, weil die Datei erfolgreich inkludiert wurde). Wäre es nicht "richtiger" den Code an dieser Stelle so aufzubauen:

Code: Alles auswählen

        if(include_once($file)){
               self::addClassmapConfig($arr);
        }
und dann in der include-Datei anstatt

Code: Alles auswählen

return array(....
einfach

Code: Alles auswählen

$arr = array(....
zu setzen?
Oder zumindest in der ifabfrage anstatt if($arr) if(is_array($arr)) verwenden.

Re: Argument 1 cAutoload::addClassmapConfig() must be array

Verfasst: Mi 25. Jun 2014, 12:47
von mischa.holz
Das return statement sollte eigentlich so funktionieren. Ist die config.autoloader.php vorhanden und lesbar?
Eigentlich sollte die auch nicht bearbeitet werden...

Re: Argument 1 cAutoload::addClassmapConfig() must be array

Verfasst: Mi 25. Jun 2014, 13:52
von rethus
Alles in allem ist das Problem nun gelöst.
Scheinbar wurde der Webserver (auf den ich in diesem Fall leider keinen konfigurierbaren Zugriff hatte) mit falschen Rechten (ver)konfiguriert.
Da Contenido nicht auf diesem Server installiert, sondern lokal installiert und dann nur auf den Server umgezogen wurde, war der Fehler nicht direkt so offensichtlich.

Eine Testinstallation eines neuen Contenido-Systems hatte dann auch prompt die Verzeichnisrechte beanstandet, obwohl diese auf 777 gesetzt waren. Es schien irgend etwas mit der Zugehörigkeit der Benutzergruppen zu tun gehabt haben... leider hat man mir hier kein brauchbares Feedback gegeben, das den Fehler hier genau beschreibt.
Dennoch hoffe ich, das es dem ein oder anderen weiterhilft, der mit dem Problem zu kämpfen hat.