У меня возникают проблемы с загрузкой классов в одном из моих пакетов Laravel 4. Я получаю общую ошибку «Class Not Found», которая возникает, когда composer.json
не имеет правильного отображения пути пространства имен. Я попытался добавить все в файл composer.json
, но ничего не работает, но не psr-0
, ни classmap
, ни files
. Однако, если я пытаюсь использовать полный путь к классу при объявлении нового объекта:Пакет Laravel 4 не загружает правильный путь класса
$foo=new Myvendor\Mypackage\Domain\Models\Mymodel;
она работает достаточно хорошо. Тем не менее, я не хочу объявлять весь путь каждый раз, когда мне нужен объект. Тот факт, что класс с полным файловым файлом показывает, показывает, что я очень близок к решению.
Отредактировано: Некоторый код
Мой класс, который расположен на: src\Myvendor\Mypackage\Domain\Models\Complainant.php
относительно корня пакета
<?php namespace Myvendor\Mypackage\Domain\Models;
class Complainant {
public $fname;
public $lname;
}
Часть моего composer.json
файла:
"autoload": {
"psr-0": {
"Myvendor\\Mypackage": "src/"
}
},
Этот код делает не работает:
$var=new Complainant;
Хотя следующие делают:
$c=new Myvendor\Mypackage\Domain\Models\Complainant;
Вы сделали композитор дамп после того, как вы обновили композитор.json? – Robbo
Да, я использовал 'composer dump-autoload' каждый раз, когда меняю смену. Json – Ermir
Возможно, вы неправильно используете пространства имен. Показать фактический код и фактические ошибки. Этот вопрос не очень полезен. – Robbo