> Вроде понятно. У вас контроллер компонует результаты дочерних контроллерчиков. Можно имена
> классов просто в базу сохранять, без искусственных partType. Выборок по этим
> ид нет же?Блин... Ну вот сама принципиально идея сохранять имена классов в БД...
Ну т.е. условно есть скептическое отношение к языку basic, оператору goto, к использованию непроверенного пользовательского ввода во всякого рода SQL-инъекциях, к использованию конструкции eval, не является ли использование данных из БД в качестве исполняемого кода - плохой практикой?
Ведь если в БД хранится имя класса, то мы должны использовать что-то типа:
$objItem = $stringFromDB();
. Т.е. как я вижу это - есть концепция "динамического кода", когда сам код программы - неясен на момент исполнения, и во время него более того тоже меняется.
Т.к. в процессе исполнения получается сам код программы становится результатом его работы.
А есть условно "статический код", т.е. в ближайшем приближении - код который можно скомпилировать в исполняемый файл и запустить сам по себе. Всякие eval() и $objFromString() вроде бы представляют собой часть динамической составляющей.
Вот я и хочу разобраться, насколько это имеет смысл. Я так понял, что среди плюсов динамического подхода: Проще реализация - исключаем часть "конечного автомата по выбору класса для Объекта"
Минусы у динамики - Смешение кода и данных, т.к. код для создания объекта берётся в любом случае из внешнего источника (БД или Роутинг из URL), также я думаю к минусам можно отнести скорость исполнения (если динамически инклудить файлы с описанием класса для Объекта)
Плюсы и минусы у Статики - соответственно противоположные.
Так ли это? Какие ещё есть варианты реализации таких вот как Товарищ выше описал "Контроллеров" и их "Контроллерчиков"?