fixxxer
я бы не хотел употреблять такие страшные слова.
потому что к ним цепляются потом, и начинают спорить с тем, что я кого-то хочу загнать в какие-то рамки. Хотя я никого никуда загонять не хочу и возражать на эти левые обвинения мне уже поперек горла (в этом смысле я боюсь даже слова "основные", поскольку некоторые воспримут не как "суть критики", а как "принципиальные недостатки". Некоторые уже ринулись утешать Amdy, хотя ни он сам, ни его фреймворк в это мне нуждаются, а мои замечания не дают повода для этого.
Но в сущности - да, я считаю, что не доделав нижний уровень, мы полезли выше, и проблемы нижнего решаем за счет верхнего. И наоборот - внизу имеем то, что должно быть вверху. Собственно, началось всё с функции insert().
Как и многие далостроители, Amdy отрезал ноги у запроса, сделал вместо них протезы, и в таком виде отправил гулять в приложение.
К примеру, хелпер для апдейтов.
Вот прям така сложна операция, така сложна - обязательно её надо облегчить.
ладно, получаем (псевдо)код
PHP:
$db->query("UPDATE table ?placeholder WHERE field=?placeholder",$data,$var);
который превратился в
PHP:
$db->update("table",$data,$db->getExpr("field=?placeholder",$var));
никакого упрощения не получили
сэкономив два слова в запросе, наворотили монстроподобный синтаксис, расчленив запрос на куски и раскидав на два этажа.
всё стало куда сложнее, приводя, в экстремальных случаях, к ужасам типа $db->addOr(...).
Ладно - говорит он - это не хелпер, это абстракция.
Вот здесь, я считаю, мы имеем принципиальный косяк.
Во-первых, мы не слишком-то абстрагировались. Кишки конкретного диалекта SQL все равно торчат там и сям.
Во-вторых, абстрагировались мы не там, где надо.
если delete() - как мне пытался впарить Ragazzo - это метод-прототип для базового класса, то почему этот базовый класс - dal? и почему базируется на вполне конкретном диалекте SQL?
Я считаю, что надо сделать отдельно удобный инструментарий для работы SQL.
Это будет 1 уровень.
Дальше, если ты действительно хочешь всё упрятать - сделай второй, и в нём уже прячь. Только это всё равно не сработает, но если уж очень хочется.
Вообще, это во мне, наверное, говорит бритва оккама.
И опыт, который говорит о том, что когда не могут сделать просто - делают сложно.
И ещё другой опыт, который говорит, что в рекламе у каждого фреймворкостроителя всё в шоколаде и ОРМе.
А на практике, куда ни ткни - везде голый SQL фигачат (потому что жизнь чуточку сложнее рекламы). А инструментов для нормальной работы с SQL-то и неееету!
