Изучение ORM на PHP - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Fri, 26 Apr 2024 22:10:11 +030016. <strong>KpuTuK</strong>, в доктрине примерно так, в activerecord php не знаю, не пробовал еще
https://visavi.net/topics/39433/652115
Изучение ORM на PHP Вантуз-менTue, 26 Nov 2013 01:47:02 +0400Сообщенияhttps://visavi.net/topics/39433/65211515. <strong>Vantuz</strong>, ну тоесть как я понимаю берется содержимое таблицы через обычный sql помещается в обьект и дальше уже на уровне php происходят манипуляции?
https://visavi.net/topics/39433/652101
Изучение ORM на PHP KpuTuKMon, 25 Nov 2013 23:41:28 +0400Сообщенияhttps://visavi.net/topics/39433/65210114. <strong>KpuTuK</strong>, orm это не только запросы к базе, это удобные связи между таблицами, работа с разными базами итд<br>
да можно все самому, но если писать примитивно, то лишний гемор, а если делать круто, то зачем изобретать велоспиед
https://visavi.net/topics/39433/652099
Изучение ORM на PHP Вантуз-менMon, 25 Nov 2013 23:33:57 +0400Сообщенияhttps://visavi.net/topics/39433/65209913. <strong>Vantuz</strong>, все дело в том что все предпочитают ОРМ вот и хочу разобраться что к чему а так можно и без всего этого обойтись грамотно составив запросы
https://visavi.net/topics/39433/652098
Изучение ORM на PHP KpuTuKMon, 25 Nov 2013 23:30:28 +0400Сообщенияhttps://visavi.net/topics/39433/652098activerecord под php вроде норм, радует размер
https://visavi.net/topics/39433/652095
Изучение ORM на PHP Вантуз-менMon, 25 Nov 2013 22:24:19 +0400Сообщенияhttps://visavi.net/topics/39433/65209510. <strong>Башка</strong>, <br>
не разобрался т.к. все таки не понял смысла ОРМ....<br>
(т. е. Сути)
https://visavi.net/topics/39433/652085
Изучение ORM на PHP KpuTuKMon, 25 Nov 2013 19:57:09 +0400Сообщенияhttps://visavi.net/topics/39433/65208510. <strong>Башка</strong>, большое спасибо))))
https://visavi.net/topics/39433/651127
Изучение ORM на PHP KpuTuKSat, 09 Nov 2013 17:54:48 +0400Сообщенияhttps://visavi.net/topics/39433/651127Можно и пример, если разберешся. Беру из рабочей системы, но скорее всего зависимости повиснут и использовать не получится
https://visavi.net/topics/39433/651124
Изучение ORM на PHP АртурSat, 09 Nov 2013 17:16:45 +0400Сообщенияhttps://visavi.net/topics/39433/651124<strong>Уникальность объектов</strong><br>
<br>
а пример можно? а то выходит все чтото на подобие этого<br>
<pre class="prettyprint"><?php
interface OID {
/**
* Возвращает обьект по ид
* @param int $id
*/
public function getOID($id);
/**
* Сохраняет обьект по ид
* @param type $id
* @param type $obj
*/
public function setOID($id, $obj);
}
class ORM implements OID {
protected $obj_arr;
protected function getOID($id) {
return $this -> oid_arr[$id];
}
protected function setOID($id, $obj) {
$this ->oid_arr[$id] = $obj;
}
}
?></pre>
https://visavi.net/topics/39433/651122
Изучение ORM на PHP KpuTuKSat, 09 Nov 2013 17:09:40 +0400Сообщенияhttps://visavi.net/topics/39433/6511227. <strong>KpuTuK</strong>,То что ты показываешь, это ActiveRecord, более простое решение, не являющееся ORM. ORM это DataMapper.<br>
<br>
Вариантов несколько, объясню на примере моего. Для реализации ORM (как правило) нужно решить две задачи: ассоциативность и наследование. Другими словами как сохранять в базе единичные и множественные ссылки на объекты и как сохранять в базе наследование классов. <br>
По первому вопросу нужно решить задачу уникальности объектов и преобразование объектов в уникальные ссылки. По второму вопросы есть решение либо на уровне одной таблицы, либо на уровне нескольких.<br>
Теперь по каждому подробнее:<br>
<strong>Уникальность объектов</strong><br>
Решается довольно просто. Реализуем интерфейс, на пример OID, который определяет методы setOID, getOID, getProxy и т.д. Те классы, которые реализуют уникальные объекты, должны реализовать этот интерфейс, а интерфейс определяет объекты, которые можно идентифицировать по некоторому уникальному свойству OID (на пример целочисленный идентификатор).<br>
<strong>Создание ссылок</strong><br>
Тут тоже все просто. Есть объект с OID, для создания ссылки на него достаточно знать OID и имя класса этого объекта. Реализуем метод getLink который возвращает запись вида $имяКласса:OID. Если в будущем система встретит в базе такую строку, значит это ссылка на объект класса имяКласса с идентификатором OID и его легко восстановить.<br>
<strong>Наследование на уровне одной таблицы</strong><br>
Это простое решение задачи. Есть класс B который наследуется от класса A. Для хранения обоих классов используется одна таблица. Если нужен класс C от класса B, нужно расширить таблицу. Нарушение 1 нормальной формы.<br>
<strong>Наследование на уровне иерархии таблиц</strong><br>
Сложная задача. Нужно сделать так, чтобы один класс был в одной таблице, а другой в другой таблице, даже если они в одной иерархии наследования.
https://visavi.net/topics/39433/651107
Изучение ORM на PHP АртурSat, 09 Nov 2013 15:21:33 +0400Сообщенияhttps://visavi.net/topics/39433/6511076. <strong>Башка</strong>, спасибо)))<br>
То есть как я понял мы создаем общий класс (class myORM) и потом создаем дочерние на каждую таблицу (class myTable) и обращаемся к ней <br>
<pre class="prettyprint"><?php
$sql = new myORM('myTable');
// далее уже работаем с объектом класса myTable
$sql->select('id')->where('login', 'test');
// что составит sql запрос SELECT `id` FROM `myTable` WHERE `login` = 'test'
?></pre>
(стр 186-187)<br>
смысл тогда от нее...<br>
<br>
<em><span style="font-size:x-small">Добавлено через 04:55 сек.</span></em><br>
конструктор получился ....
https://visavi.net/topics/39433/651095
Изучение ORM на PHP KpuTuKSat, 09 Nov 2013 14:17:31 +0400Сообщенияhttps://visavi.net/topics/39433/651095[url=http://109.172.57.193/library/Компьютер/Программирование/Разработка/Архитектура корпаративных программных приложений-Фаулер М-2006.pdf]56 стр.[/url]<br>
<br>
<em><span style="font-size:x-small">Добавлено через 02:13 сек.</span></em><br>
Достаточно определить способ проекции свойств классов на реляционную базу данных, далее будет проще.
https://visavi.net/topics/39433/651066
Изучение ORM на PHP АртурFri, 08 Nov 2013 22:50:52 +0400Сообщенияhttps://visavi.net/topics/39433/6510663. <strong>KpuTuK</strong>, чтобы понять что она из себя представляет, изучи уже готовое
https://visavi.net/topics/39433/651062
Изучение ORM на PHP ИзнаурFri, 08 Nov 2013 21:20:40 +0400Сообщенияhttps://visavi.net/topics/39433/651062<a href="http://design-pattern.ru/" target="_blank" rel="nofollow">http://design-pattern.ru/</a> - "Паттерны архитектуры источников данных"
https://visavi.net/topics/39433/651060
Изучение ORM на PHP АлександрFri, 08 Nov 2013 21:14:44 +0400Сообщенияhttps://visavi.net/topics/39433/6510602. <strong>alexandr.sytnyk</strong>, я наверное не совсем правильно выразился....<br>
я сам написать ее хочу но не знаю что она из себя представляет(((
https://visavi.net/topics/39433/651056
Изучение ORM на PHP KpuTuKFri, 08 Nov 2013 19:43:51 +0400Сообщенияhttps://visavi.net/topics/39433/651056