[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Конструктор запросов.
Страницы: 1, 2
Guest
дак конструктор запросов для чего? вы же фреймворк здесь создаете?

То есть я еще и виновата?

я так понимаю , все проходят одно и то же, ну вы молодец конечно
Эли4ка
Цитата
вы же фреймворк здесь создаете?

Я Query Builder делаю. До фреймворка мозгов и задач не хватит мне laugh.gif
Guest
До фреймворка мозгов и задач не хватит мне

но ведь делаете же и активность на форуме хорошая, приятно видеть, что человек думает читает развивается, в студиях/ компаниях уже работали?
Arh
Интересно послушать твина что у него поменялось в голове на тему билдера за эти два года =)

Я вот сейчас с доктриной работаю, удобство построения запросов кодом в принципе есть.
Не сказать что прям всё волшебно стало, но удобство немножко чувствуется.

То есть раньше запрос собирался с помощью дописывания в строку или объединением элементов массива.
$sql[] = "SELECT * FROM `blabla`";
$sql[] = "LEFT JOIN ...";
$sql[] = "WHERE a = b";


В принципе удобно, но есть неудобные места, когда не знаешь будет ли в запросе условие и сколько их будет.

$sql[] = "SELECT * FROM `blabla`";
$sql[] = "LEFT JOIN ...";
$where[] = "a = b";

if (!empty($where)) {
$sql[] = 'WHERE ' . implode(' AND ', $where);
}


В билдере всё это скрыто за удобными методами
Цитата
$query = $query->andWhere('a = b');


Хотя тоже не без косяков. Сначала нужно использовать метод where, а потом andWhere. Соответственно тоже нужно следить и городиться проверки.

Так же есть проблемы из за попытки угнаться за двумя зайцами. Доктрина не умеет работать с плюшками. То есть, например одна СУБД умеет функцию LEFT, а другая СУБД не умеет, то и доктрина этого не умеет, приходится ковырять, писать класс, учить, костылять в общем.

А если у вас нормальный проект, вам потребуется вся мощь СУБД которую вы выбрали, вы же выбрали её не просто так, а потому что там есть ништяки типа "ля", "хря" и "мля" в отличии от другой СУБД, а доктрина вам не даст использовать эти ништяки, потому что совместимость типа.

Разрабатывать через sql клиент становится практически не возможно, потому что совершенно другой синтаксис, запрос уже не скопируешь в код.
Даже части запроса, тестируешь в клиенте, вставляешь в доктрину, там лезут непонятные ошибки, то что то не поддерживается, то доктрина не понимает такой синтаксис, в итоге всё больше логики переносить на php.
Например "DATE_SUB(CURDATE(), INTERVAL 2 MONTH)" тут доктрина ругается на число 2

Короче билдер штука ну очень на любителя.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Arh @ 10.01.2019 - 16:30)
Интересно послушать твина что у него поменялось в голове на тему билдера за эти два года =)

Ничего не поменялось. Более того, с плотным изучением DDD и CQRS я укрепился в своем ИМХО.

1. Да, это стильно, модно, молодежно.
2. Инструмент этот должен присутствовать в фреймворке, это факт. Но именно потому, что см. п. 1.

Практическая (не эстетическая) польза сего пердимонокля весьма сомнительна.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
twin
а есть ли у вас

1) система журналов логов , дебагер вижу но он скорее как ловец ошибок работает,

2) и существуют ли системы взаимодействия через "Медиатор" что-то вроде "событий" (tvents) в YII &
twin
Нету))) Этот эксперимент заморожен давно. Там много чего нету. За ненадобностью.
Мне не нравится сама идея биг-фреймворков.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.