2016-12-16 2 views
2

Ich bekomme diesen Fehler, wenn ich versuche, Autoload und Namespaces zu verwenden. Alle meine Namespace-Klassen sind unter app/libs/PHP Namespace Klasse nicht gefunden Fehler

16-Dec-2016 04:30:50 Europe/Berlin] PHP Fatal error:

Class 'App\libs\App' not found in /Users/mysite/app/page1.php on line 26

Hier ist mein Code:

require '../public/vendor/autoload.php'; 
use App\libs\App; 
use App\libs\Auth; 
    class Controller 
    { 
     public $app; 
    public function __construct() 
    { 
     @set_exception_handler([$this, 'exceptionHandler']); 
     $this->app  = new App(); 
    } 

    } 
+0

Ich denke, das liegt daran, dass der Pfadname und der Klassenname beide App sind und das könnte das Problem sein .. –

Antwort

1

automatisches Laden normalerweise Dateien enthält nur unter dem Hersteller-Ordner. Es lädt keine anderen Dateien, wenn Sie nicht dazu aufgefordert werden. Sie verwenden wahrscheinlich Komponisten. Wenn dies der Fall ist, können Sie Ordner in der Datei composer.json hinzufügen, um Klassendateien aus anderen Ordnern wie App \ libs einzuschließen. Ein Beispiel für eine composer.json Datei ist:

{ 
    "require": { 
     "twig/twig": "~1.0" 
    }, 
    "autoload": { 
     "psr-4": { 
      "App\\": "App/" 
     } 
    } 
} 

Im obigen Beispiel wird automatisch alle Dateien im App-Ordner automatisch geladen. Schließlich müssen Sie ausführen: Composer Dump-Autoload, damit dies funktioniert.

Verwandte Themen