Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
foreach ($result as $k => $v) {
$obj = new $param;
$this->fill_fields($obj, $v);
}
ORM (англ. Object-relational mapping, русск. Объектно-реляционная проекция) — запись объектов программы в реляционную базу данных, отображение объекта и его представления в виде набора таблиц.
public function selectRecord($type, $ids) {
$type=$this->adapter->escape($type);
$rows = $this->adapter->get( "SELECT * FROM `$type` WHERE id IN ( ".implode(",",$ids)." )");
if ($rows && is_array($rows) && count($rows)>0) {
return $rows;
}
else {
return null;
}
}
class GoldUsers extends DaBase_Getter {
protected $tableName = 'users';
protected $objectsClass = 'User';
protected function postInit() {
$this->isGold(true);
}
}
Спорный вопрос. Properl & Doctrine & etc это полноценные и тяжелые ORM, они требуют полной спецификации базы и соответствующей конкретики в обращении с нейВ том же самом пропеле я в одном XML конфиге получаю структуру базы. Легко, доступно и в одном месте.
Вы высоко нагруженные проекты на Propel когда-нибудь профайлили? Случается, что в конечном счёте приходится или Propel откручивать, или вторую серверную стойку на Xeon-ах прикручивать.Вы хотите сказать, что Propel был узким местом вашего проекта? В чем именно? Кроме кривой системы кеширования, которую можно всегда заменить, я не могу представить что там может тормозить. Быть может, стоило, наконец, освоить какой-то другой язык кроме PHP, если ORM библиотека является узки местом?
Удобнее? Я считаю да, во многих моментах удобнее. Надо будет в топике подправить, что сие не есть Enterprise-решениеРасскажите как мне работать с колонкой order, если она есть в таблице? Как мне сделать условие «IS NOT NULL»?
А это вообще возможно? Простите, но как вы себе представляете пылесос и фен в одном флаконе?Видел пару раз удачные экземпляры, но, к сожалению, ссылок найти сейчас не смог.
Скажите это тем, кто использует Twitter вместо LivejournalЯ бы не стал сравнивать клиентскую часть и серверный код.
В том, что при создании запроса генерится слишком много левых (Propel-овских объектов), в том, что сам код перевешивает код всей системы и т.д.Можно конкретики? Памяти слишком много отжиралось, слишком долго выполнялось? Что именно?
$db->users->order('order')->get(); // :)Я криво написал, а вы не поняли. Как сделать фильтр по этой колонке. Сейчас фильтрация у вас идет методами с таким же названием как и колонка. Метод order же уже существует, а, значит, по значению эту колонку будет не отфильтровать.
DaBase — не очередная ORM для PHP