2016-12-16 3 views
2

Я получаю эту ошибку, когда пытаюсь использовать autoload и namespaces. Все мои классы пространства имен находятся под приложением/LIBS/php namespace class not found error

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

Вот мой код:

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

Я предполагаю, что это потому, что имя пути и имя класса - это приложение, и это может быть проблемой .. –

ответ

1

автозагрузка обычно включает в себя файлы только в папках поставщика. Он не загружает другие файлы, если вы не проинструктируете. Возможно, вы используете композитора. Если это так, вы можете добавить папки в файл composer.json, чтобы включить файлы классов из других папок, таких как App \ libs. Пример composer.json файл:

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

В нелогич- выше, он будет автозагрузкой любых файлов в папке App. Наконец, вам нужно запустить: composer dump-autoload, чтобы это работало.