Перейти к содержанию

Рекомендуемые сообщения

полезная штука

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я об этом давно писал, что подобная штука была бы очень полезна для опенкарта. 
правда код там еще достаточно сырой, подозреваю, что с кучей багов + много вещей не доделано.  
можно разве что подключиться для тестирования. 

Подозреваю, что Даниелю это конечно навряд ли понравится.. он увидит трейты ужаснется и скажет что это слишком сложно, не нужно это в опенкарте))


Но это вполне можно будет внедрять в свои модули. Будет как с vqmod-ом. В инструкции к модулю будет написано, что модуль использует QueryBuilder, подключить его к опенкарту можно вот так: инструкция. Правда тут нужно чтобы опенкарт умел работать как с обычными запросами так и паралельно с этим билдером, чтобы какой модуль хотел тот использовал билдер, а какой нет и сам опенкарт использовали обычные запросы. Сейчас такой поддержки нету я так понимаю. 
Если же достаточно разработчиков будут использовать этот инструмент и он будет популярным то его потом как и vqmod добавят в сам движок. 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше прикрутить Doctrine

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, ArtemPitov сказал:

Лучше и прикрутить Doctrine

это было бы очень круто, но для опенкарта это навряд ли  подойдет, так как это будет слишком сложное и тяжелое решение а для опенкарта нужно что-то очень простое и легкое в духе самого опенкарта, какой-то простой и легкий query builder типа этого был бы почти идеальным решением если его довести до ума. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, sv2109 сказал:

Правда тут нужно чтобы опенкарт умел работать как с обычными запросами так и паралельно с этим билдером,

так и есть

Он делает надстрйку над db классом, не наследуя его.

	/* Overwriten functions */
	
	public function query($sql) {
	    if($this->logEnabled) {
	        $this->log[] = $sql;
        }

		return $this->db->query($sql);
	}

там все в стиле Даниеля :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, chukcha сказал:

$this->log[] = $sql;

вот когда этот лог разбухнет ...

 

6 минут назад, sv2109 сказал:

если его довести до ума.

вот именно, если довести до ума =( 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, ArtemPitov сказал:

Лучше прикрутить Doctrine

Не надо, только утяжелит и "запутает" opencart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, ArtemPitov сказал:

вот когда этот лог разбухнет ...

С чего бы.. ну 200 запросов
Кроме того, это только тогда, когда включен режим
 

 

1 час назад, ArtemPitov сказал:

если довести до ума =( 

а в чем проблема? если начать сейчас пользовать для своих проектов

по крайне мере можно и на базе class Query для своих запросов, а отдавать уже сгенерированный.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

100500+

2 hours ago, sv2109 said:

 а для опенкарта нужно что-то очень простое и легкое в духе самого опенкарта

 

Ну и мысли вслух

 

Пессимистическая позиция

  • для ОС с его достаточно простой и прозрачной структурой БД (менее 200 таблиц), которая практически не меняется годами и в подавляющем большинстве случаев работает под управлением одной и той же СУБД, имхо, различные Object-Relational Mapping не дадут никаких преимуществ, кроме как снизят и без того невысокий порог вхождения для разработчиков модулей: теперь им и можно даже не иметь опыта написания несложных SQL-запросов.
  • решения, использующие различные "query builder'ы", будут заведомо менее быстрые и более ресурсоёмкими, что негативно скажется на общей производительности, а в особенности - на крупных проектах.
  • любой "query builder" является относительно топорным и угловатым инструментом, позволяющий решать лишь относительно типовые задачи; одним словом - это не панацея.

Оптимистическая позиция

  • внедрение query builder'а значительно сокращает время разработки: программист может вообще не заморачиваться за архитектуру базы.
  • при организации работы с данными приложения через ORM, БД можно практически безбоязненно денонармализировать, не боясь того, что "что-то" отвалится
  • стильно, модно, молодежно. Почти так же, как машин лёнин и ИИ :)))
Изменено пользователем 100napb

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.