QueryBuilder и AR в отдельном пакете?

Не относящиеся к фреймворку и программированию вопросы
dimsog
Сообщения: 7
Зарегистрирован: 2019.07.02, 12:29

QueryBuilder и AR в отдельном пакете?

Сообщение dimsog » 2019.07.08, 12:50

Александр, где-то читал (вроде бы на хабре), что вы говорили про отказ от ActiveRecord. Какое состояние у проекта сейчас, будет ли AR и QueryBuilder в отдельных пакетах и можно ли будет их установить через composer?

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение samdark » 2019.07.08, 14:23

Пока в отдельных пакетах, но не работает. В ближайшее время будем пробовать Cycle. Если зайдёт, то к релизу пилить свой query builder не будем. В Cycle он очень похож.

anton_z
Сообщения: 439
Зарегистрирован: 2017.01.15, 15:01

Re: QueryBuilder и AR в отдельном пакете?

Сообщение anton_z » 2019.07.11, 13:52

Печально, что свой каркас для взаимодействия с БД не будете делать

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение samdark » 2019.07.11, 17:38

Пока ещё не решено. Точно скажу как Cycle хорошо пощупаю.

Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение Антон Смирнов » 2019.07.12, 12:00

samdark писал(а):
2019.07.08, 14:23
Пока в отдельных пакетах, но не работает. В ближайшее время будем пробовать Cycle. Если зайдёт, то к релизу пилить свой query builder не будем. В Cycle он очень похож.
Что такое Cycle? Гугл не помог найти ответ


Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение Антон Смирнов » 2019.07.12, 14:10

О нет, крутая ActiveRecord из Yii2 может пойти под нож, вслед на PJAX.

urichalex
Сообщения: 957
Зарегистрирован: 2015.08.07, 11:03

Re: QueryBuilder и AR в отдельном пакете?

Сообщение urichalex » 2019.07.12, 14:27

Антон Смирнов писал(а):
2019.07.12, 14:10
О нет, крутая ActiveRecord из Yii2 может пойти под нож, вслед на PJAX.
PJAX был крутой?)

Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение Антон Смирнов » 2019.07.22, 18:05

urichalex писал(а):
2019.07.12, 14:27
Антон Смирнов писал(а):
2019.07.12, 14:10
О нет, крутая ActiveRecord из Yii2 может пойти под нож, вслед на PJAX.
PJAX был крутой?)
Нормальный и простой, свой круг задач решал прекрасно. Но кто-то сказал "Так не модно, пацаны не поймут", теперь PJAX пошел под нож с аргументацией "нет сил на его поддержку":)

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение samdark » 2019.07.23, 09:20

Мода тут не при чём. Его реально очень сложно поддерживать. Написан он откровенно ужасно, проблемы лезут из всех щелей и чтобы их как-то решать, приходилось делать форк и рыться в этом адовом JavaScript (в котором большинство core team на тот момент были не сильны).

На данный момент сам проект не поддерживается автором: https://github.com/defunkt/jquery-pjax# ... is-project. Последний раз автор прикасался к нему в 2017.

Loveorigami
Сообщения: 974
Зарегистрирован: 2014.08.27, 21:54

Re: QueryBuilder и AR в отдельном пакете?

Сообщение Loveorigami » 2019.07.23, 15:54

Альтернатива для него какая-то будет?
Чтоб gridView из коробки работали без перезагрузки страницы?

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение samdark » 2019.07.23, 16:45

Вы можете сами сделать:

1. Добавить в проект PJAX.
2. Написать один JavaScript чтобы он повесил на все div с классом "pjax" хендлеры PJAX.
3. В контроллере ловить заголовок X-PJAX и отдавать урезанный ответ (или нет, это по желанию).
4. Завернуть нужные гриды и формы в <div class="pjax">

Собственно, примерно это PJAX в Yii 2 и делал.

myks1992@mail.ru
Сообщения: 135
Зарегистрирован: 2017.11.15, 23:54

Re: QueryBuilder и AR в отдельном пакете?

Сообщение myks1992@mail.ru » 2019.07.24, 12:58

Pjax, конечно в Yii3 ни к чему. Но вот над каким-то альтернативным базовым решением js хотелось бы видеть) Это очень удобно, когда некоторые части страницы грузятся асинхронно. Тоже полюбил в своё время Pjax, но в последнее время от него отказался. Хотелось бы видеть модальное окно ajax и хотябы асинхронные flash Сообщения. Остальное уже умельцы под себя сделают.

А что касается ActivRecord, то это только хорошо что его не будет) Может вообще имеет смысл будет использовать доктрину.

Мне кажется не стоит слушать всех и подряд. Люди привыкнут к хорошему быстро. А если подстраиваться опять получится что попало. Мое мнение) Надо быть новаторами и стимулировать программистов на хороший код. В этом плане огромное спасибо Дмитрию Елисееву)
Последний раз редактировалось myks1992@mail.ru 2019.07.24, 13:51, всего редактировалось 1 раз.

anton_z
Сообщения: 439
Зарегистрирован: 2017.01.15, 15:01

Re: QueryBuilder и AR в отдельном пакете?

Сообщение anton_z » 2019.07.24, 13:24

myks1992@mail.ru писал(а):
2019.07.24, 12:58
Мне кажется не стоит слушать всех и подряд. Люди привыкнут к хорошему быстро. А если подстраиваться опять получится что попало. Мое мнение) Надо быть новаторами и стимулировать программистов на хороший код. В этом плане огромное спасибо Дмитрию Елисееву)
Ну ну, доктрина это прям "хорошая вещь". По мне так это тихий ужас, который нам преподносят как супер-пупер ООП подход, на деле же с ООП это имеет мало общего: https://www.yegor256.com/2014/12/01/orm ... ttern.html
Убрав инкапсуляцию подключения к БД из объекта, представляющего строку из БД мы лишаем себя многих возможностей по работе с этой строкой. Для себя я вижу Doctrine ORM и ей подобные вещи как урезанный Row Data Gateway (DAO к строке) ради независимости от БД, которая в большинстве случаев ненужна.

P.S. Я считаю, что не надо намеренно ничего стимулировать, надо просто решать практические задачи которые стоят перед проектами, а на основе этих решений вырабатывать шаблоны/фреймворки/библиотеки, а не начинать с "архитектуры" как вещи в себе. Yii 1/2 поэтому и выстрелил, что там было все что нужно для проекта средней руки из коробки. Код был написан одной командой по одним и тем же принципам. Поняв их было очень просто понять весь инструмент и продуктивно работать. Что будет с Yii3 поживем увидим.

PJAX реально в баню, прошлый век, для админок сейчас лучше генерить html на клиенте.

myks1992@mail.ru
Сообщения: 135
Зарегистрирован: 2017.11.15, 23:54

Re: QueryBuilder и AR в отдельном пакете?

Сообщение myks1992@mail.ru » 2019.07.24, 14:04

anton_z писал(а):
2019.07.24, 13:24
myks1992@mail.ru писал(а):
2019.07.24, 12:58
Мне кажется не стоит слушать всех и подряд. Люди привыкнут к хорошему быстро. А если подстраиваться опять получится что попало. Мое мнение) Надо быть новаторами и стимулировать программистов на хороший код. В этом плане огромное спасибо Дмитрию Елисееву)
Ну ну, доктрина это прям "хорошая вещь". По мне так это тихий ужас, который нам преподносят как супер-пупер ООП подход, на деле же с ООП это имеет мало общего: https://www.yegor256.com/2014/12/01/orm ... ttern.html
Убрав инкапсуляцию подключения к БД из объекта, представляющего строку из БД мы лишаем себя многих возможностей по работе с этой строкой. Для себя я вижу Doctrine ORM и ей подобные вещи как урезанный Row Data Gateway (DAO к строке) ради независимости от БД, которая в большинстве случаев ненужна.

P.S. Я считаю, что не надо намеренно ничего стимулировать, надо просто решать практические задачи которые стоят перед проектами, а на основе этих решений вырабатывать шаблоны/фреймворки/библиотеки, а не начинать с "архитектуры" как вещи в себе. Yii 1/2 поэтому и выстрелил, что там было все что нужно для проекта средней руки из коробки. Код был написан одной командой по одним и тем же принципам. Поняв их было очень просто понять весь инструмент и продуктивно работать. Что будет с Yii3 поживем увидим.

PJAX реально в баню, прошлый век, для админок сейчас лучше генерить html на клиенте.
Имеет место быть) Как мы видим, что к доктрине пока и не спешат прибегать в Yii3. Так что это тоже хорошо, надеюсь. Потому что мне доктрина тоже кажется неуместной для Yii по умолчанию. Тоже как и вы с нетерпением жду хотя бы первого релиза. Но на архитектуру тоже бы хорошо посмотреть. Большинство каких-либо модулей на Yii хочется выкинуть и написать с нуля. Конечно, зависит от человека, но имеем то что имеем. Без архитектуры сложно жить. Может быть и стоит оставить Yii2 и Yii3.

Смотрел кратко cycle она, мне показалось, что похожа на доктрину. Не плохой вариант, если одобрят)

anton_z
Сообщения: 439
Зарегистрирован: 2017.01.15, 15:01

Re: QueryBuilder и AR в отдельном пакете?

Сообщение anton_z » 2019.07.24, 14:40

myks1992@mail.ru писал(а):
2019.07.24, 14:04

Имеет место быть) Как мы видим, что к доктрине пока и не спешат прибегать в Yii3. Так что это тоже хорошо, надеюсь. Потому что мне доктрина тоже кажется неуместной для Yii по умолчанию. Тоже как и вы с нетерпением жду хотя бы первого релиза. Но на архитектуру тоже бы хорошо посмотреть. Большинство каких-либо модулей на Yii хочется выкинуть и написать с нуля. Конечно, зависит от человека, но имеем то что имеем. Без архитектуры сложно жить. Может быть и стоит оставить Yii2 и Yii3.

Смотрел кратко cycle она, мне показалось, что похожа на доктрину. Не плохой вариант, если одобрят)
Cycle это концептуально почти то же самое что и Doctrine ORM, там задачей ставили преодолеть ее недостатки, убрать ужас в лице DQL, а так это то же самое. По мне так не особо он зашел, не популярен. может и загнуться.

Мне в Yii очень не хватает гибкого валидатора для валидации вложенных массивов/хешей. Юзаю симфонийский, но и он не без убожеств. Еще есть неудобство с иcпользованием модулей в качестве локаторов сервисов, так как инстансы модулей создаются во время роутинга. Я бы модульную систему делал на основе ZF3, только с локатором сервисов. Моей команде SL удобнее, больше приглянулся.

myks1992@mail.ru
Сообщения: 135
Зарегистрирован: 2017.11.15, 23:54

Re: QueryBuilder и AR в отдельном пакете?

Сообщение myks1992@mail.ru » 2019.07.24, 14:47

anton_z писал(а):
2019.07.24, 14:40
myks1992@mail.ru писал(а):
2019.07.24, 14:04

Имеет место быть) Как мы видим, что к доктрине пока и не спешат прибегать в Yii3. Так что это тоже хорошо, надеюсь. Потому что мне доктрина тоже кажется неуместной для Yii по умолчанию. Тоже как и вы с нетерпением жду хотя бы первого релиза. Но на архитектуру тоже бы хорошо посмотреть. Большинство каких-либо модулей на Yii хочется выкинуть и написать с нуля. Конечно, зависит от человека, но имеем то что имеем. Без архитектуры сложно жить. Может быть и стоит оставить Yii2 и Yii3.

Смотрел кратко cycle она, мне показалось, что похожа на доктрину. Не плохой вариант, если одобрят)
Cycle это концептуально почти то же самое что и Doctrine ORM, там задачей ставили преодолеть ее недостатки, убрать ужас в лице DQL, а концептуально это то же самое.

Мне в Yii очень не хватает гибкого валидатора для валидации вложенных массивов/хешей. Юзаю симфонийский, но и он не без убожеств. Еще есть неудобство с иcпользованием модулей в качестве локаторов сервисов, так как инстансы модулей создаются во время роутинга. Я бы модульную систему делал на основе ZF3, только с локатором сервисов. Моей команде SL удобнее, больше приглянулся.

Дак вам Cycle тоже не нравится?
Про валидировать согласен. Тоже сталкивался с этим, но пока живу с Yii валидаторами и своими.

Модульность неплохую Александр предложил. Разделение по Namespace, а настройка модуля через отдельный конфиг. Чем вам не нравится? По мне дак хорошо. Но точно куда гибче и лучше чем сейчас на Yii2

myks1992@mail.ru
Сообщения: 135
Зарегистрирован: 2017.11.15, 23:54

Re: QueryBuilder и AR в отдельном пакете?

Сообщение myks1992@mail.ru » 2019.07.24, 14:50

Еще вот интересно как будут реализованы формы.

anton_z
Сообщения: 439
Зарегистрирован: 2017.01.15, 15:01

Re: QueryBuilder и AR в отдельном пакете?

Сообщение anton_z » 2019.07.24, 15:12

myks1992@mail.ru писал(а):
2019.07.24, 14:47

Дак вам Cycle тоже не нравится?
Мне DataMapper как способ организации взаимодействия с БД не нравится. Cycle это имплементация DataMapper, как и Doctrine ORM.
myks1992@mail.ru писал(а):
2019.07.24, 14:47
Модульность неплохую Александр предложил. Разделение по Namespace, а настройка модуля через отдельный конфиг. Чем вам не нравится? По мне дак хорошо. Но точно куда гибче и лучше чем сейчас на Yii2
Тут ничего сказать не могу, пока не смотрел, что команда YII планирует c этим делать.

Аватара пользователя
ElisDN
Сообщения: 5410
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: QueryBuilder и AR в отдельном пакете?

Сообщение ElisDN » 2019.07.24, 15:31

anton_z писал(а):
2019.07.24, 13:24
По мне так это тихий ужас, который нам преподносят как супер-пупер ООП подход, на деле же с ООП это имеет мало общего
Для такого real-time общения с БД более заточен Eloquent.
anton_z писал(а):
2019.07.24, 13:24

Убрав инкапсуляцию подключения к БД из объекта, представляющего строку из БД мы лишаем себя многих возможностей по работе с этой строкой.
И получаем другие возможности по работе с объектом.
anton_z писал(а):
2019.07.24, 13:24

Для себя я вижу Doctrine ORM и ей подобные вещи как урезанный Row Data Gateway (DAO к строке).
Либо урезанный Active Record, либо дополненный поведением Row Data Gateway. Но никак не урезанный Row Data Gateway.
anton_z писал(а):
2019.07.24, 13:24

...ради независимости от БД, которая в большинстве случаев ненужна.
Изначально не ради независимости от БД, а ради разделения логики от хранения/представления. Как мы HTML-код выносим в отдельные представления, чтобы не конкатенировать PHP+HTML лапшу прямо в контроллере, так и выносим SQL в отдельное место, чтобы не мешать PHP+SQL лапшу в сущности. Ну и для удобства тестирования чистого PHP-кода без БД. А независимость идёт бонусом.

P.S. Практически все претензии от нелюбителей ORM в десятках статей сводятся к неудобствам, которые всплывают при использовании ORM не по назначению. Когда её вместо мэппинга доменных сущностей пытаются использовать для листингов и отображений в UI.

Ответить