Laravel, get_declared_classes() не видит ни одну модель кроме User

209
13 октября 2017, 18:07

Все модели создавались артисаном. При вызове get_declared_classes() Не получаю все модели, только модель User. При этом если вызвать class_exists('App\SomeModel'), возвращает true. В чем может быть проблема?

Answer 1

get_declared_classes возвращает список объявленный в скрипте классов на момент своего вызова. Не все классы в проекте, а только те, что уже были объявлены.

class_exists ищет указанный класс в списке объявленных классов, если не находит в этом списке, то:

  • если второй аргумент указан как false - то функция вернёт false
  • если второй аргумент не указан или указан true - то функция вызовет механизм автозагрузки классов. Если этот механизм найдёт заданный класс - то функция вернёт true.

Сравните списки

var_dump(get_declared_classes());
var_dump(class_exists('App\SomeModel', false)); // ожидается false
var_dump(get_declared_classes()); // список не изменился
var_dump(class_exists('App\SomeModel')); // вернул true
var_dump(get_declared_classes()); // в списке появился новый класс
READ ALSO
PHP проверка на наличие файла по таймеру

PHP проверка на наличие файла по таймеру

Можно ли с помощью php проверять наличие какого либо файла в каталоге по таймеру 24/7

200
Google Inbox: как отключить цитирование текста в письмах?

Google Inbox: как отключить цитирование текста в письмах?

Когда отправляются 2 однотипных письма, которые отличаются, например, несколькими строками, то inbox сворачивает одинаковые блоки в "цитируемый...

255
Время жизни сессии в firefox и ie всего 1 минута

Время жизни сессии в firefox и ie всего 1 минута

ЗдравствуйтеСтолкнулся с такой проблемой

176