Pull to refresh

Comments 9

Люблю LS и люблю ORM'ы, но реализациия ORM в LiveStreet мне не по душе.
Первое, что я увидел когда смотрел ее — это то, что парсер запроса встроен в метод __call модуля а не в мэппера, что довольно странно в принципе, кроме того еще и перехватывает все обращения к другим модулям и проупскает через десяток RegExp'ов.
Во-вторых как движок БД используется не самый быстрый DbSimple, а помноженный еще и на парсер ORM'а он вообще не выдает ничего более-менее производительного.

Что касается ActiveRecord, как паттерна, выбранного для реализации, то тут, наверное, дело вкуса, хотя я был бы рад увидеть DataMapper на его месте.
по идеи это время ничтожно мало по сравнению с временем выполнения самого запроса к БД
Ну вообще я потестил, время работы парсера ORM на 1000 запросов 0.05с с копейками, поэтому да, больший проигрыш сам DbSimple cо своим стремительно устаревающим расширением mysql дает.
Ну и на создание сущностей на больших объемах уходят ресурсы.
зачем делать велосипед?? Этот ОRМ подобие на Rails. Возьмите Doctrine и будет Вам счастье
Это не мне надо адресовать, не я писал, я только лишь изложил.
Спасибо за статью.
Есть несколько замечаний:
1. типы связей нужно указывать не напрямую, а через константы, например, EntityORM::RELATION_TYPE_BELONGS_TO
2. 'has_one' — это, например, когда у пользователя(основная сущность) есть сессия, и она хранится в отдельной таблице, в то время когда belongs_to соответствует категории, id которой прописан в таблице пользователя
3. Save(); совмещает и update() и add(), первый выполняется если сущность уже есть в бд, второй когда ее еще нет
4. называть таблицы в формате prefix_<module-name>_<entity-name> не обязательно, в конфиге можно прописать соответствия любому названию
5. поля также не обязательно именовать как <entity-name>_<field-name>, можно просто <field-name>
1. Нужно, или лучше? Ajaxy писал что есть шорт-коды, ну я и взял на заметку.

Спасибо за замечания, завтра поправлю статью.
нужно, иначе изменения в ядре приведут к неработоспособности такого плагина
Sign up to leave a comment.

Articles