Алексей Уколов, и все же нужно, чтобы ни ТС, ни читающих ответ не путать:
ISP не об этом совсем :) Он просто о том, чтобы интерфейсы были тоньше, дабы единую ответственность не нарушить...
IoC все же более обширный принцип, его можно отнести к принципам типа GRASP
Если из SOLID смотреть на этот принцип, то тут подойдут Open/Closed Principe (O) -- меняем не нутро, а с наружи наращивает, с чем интерфейс нам и помогает, а также Dependency Inversion Principe (D), который говорит о внедрении зависимости снаружи, желательно через интерфейс;)
Посмотрите в сторону функционально го подхода, в сторону например языка Closure
Или в своём языке... Определённый уклад, достаточно сложный подход (хвостовые рекурсии, лямбды и вот это все)
Встречается в серьёзном коде
Опыт с таким подходом разработки будет явным плюсом, у меня с ним сложновато... Я достаточно оопнутый
Crash, насколько помню ты плотно с Yii2 работаешь -- у них в доке много примеров (в т.ч. в доке их), они с ним плотно работают... свои вроде реализации для удобства есть
drboboev, все верно -- для наследника создавайте фикстуру наследника, для других наследников -- другой код создания, было бы странно иметь возможность для создания рабочего места уборщика конфигурировать его под генерального директора
Если нужен универсальный код -- создайте фабрику некую... где сделайте проверки на тип сущности
jwwwe, ну как разные? Они же откуда то берутся и когда-то одинаковые? :)
Ладн, что значит разные? ВЫ их в виде csrf токена вставляете в форму? Значит в сессии есть ключ этот же, который можно сравнить с прилетевшим на запрос полем :)
Это не мануал, а документация... там не пишут как делать, тк языки у всех разные, как и системы :) Они пишут возможности своего АПИ и алгоритм работы описывают