Size: a a a

2020 May 03

EK

Evgeniy Kuvshinov in Laravel Pro
и если обратить внимание class_implements($class, false)
источник

EK

Evgeniy Kuvshinov in Laravel Pro
вторым аргументом идет false что значит ничего не пытаться подгрузить
источник

EK

Evgeniy Kuvshinov in Laravel Pro
уже все предварительно загружено
источник

V

Vadim in Laravel Pro
И при этом там стоят проверки на то, что грузить можно только псровские классы
источник

EK

Evgeniy Kuvshinov in Laravel Pro
я нигде не говорил про загрузку только пср классов
источник

EK

Evgeniy Kuvshinov in Laravel Pro
я говорил что classmap в composer не генерится для psr4 если не использовать флаги оптимизаций
источник

V

Vadim in Laravel Pro
Это я говорю. Ты говорил, что можно загрузить не псровский класс и выполнить произвольный файл
источник

EK

Evgeniy Kuvshinov in Laravel Pro
Vadim
Подгружает, но не вызывает. Это нормальная цена за удобство фичи. И твои аргументы про то, что таким образом можно вызвать опасный файл, не имеют ничего общего с реальностью. При получении данных о том, имплементит ли класс интерфейс, запускать его не надо.
вот утверждение
источник

EK

Evgeniy Kuvshinov in Laravel Pro
что он его не вызывает
источник

EK

Evgeniy Kuvshinov in Laravel Pro
но каким то чудом без вызова работает class_implements
источник

EK

Evgeniy Kuvshinov in Laravel Pro
я думаю что путаете вызов и создание инстанса объекта
источник

EK

Evgeniy Kuvshinov in Laravel Pro
потому что загрузка кода в пхп это require/include
который выполняет скрипт.
просто если в файле придерживаются psr там нет sside effect
источник

V

Vadim in Laravel Pro
Evgeniy Kuvshinov
я думаю что путаете вызов и создание инстанса объекта
Ну да, без создания инстанса, я думал, это и так понятно.
источник

EK

Evgeniy Kuvshinov in Laravel Pro
тогда согласны с тем что код вызывается для загрузки?
источник

EK

Evgeniy Kuvshinov in Laravel Pro
остается определить он загружается весь или только те классы что зареганы через ContainerBuilder
и экстеншены и тд
источник

EK

Evgeniy Kuvshinov in Laravel Pro
и если есть место где в ручную регаюца классы
источник

EK

Evgeniy Kuvshinov in Laravel Pro
то мы приходим опять к тому самому
источник

EK

Evgeniy Kuvshinov in Laravel Pro
Evgeniy Kuvshinov
commands => function (Container $container) {
  return [
        $container->get(A::class),
        $container->get(B::class),
  ]
}
типо этого
источник

EK

Evgeniy Kuvshinov in Laravel Pro
просто синтаксис через билдер или конфиг файл (не суть важна)
источник

EK

Evgeniy Kuvshinov in Laravel Pro
и получаем вагон абстракций, для фитчи которую можно точно также сделать указав в конфигурации
источник