Хорошая библиотека PHP ORM?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

268
задан 3 revs, 3 users 67% 2 September 2012 в 20:48
поделиться

21 ответ

Изучите , Доктрина 1.2 Доктрины .

реализует Активную Запись. Доктриной 2 + является DataMapper ORM.

кроме того, проверьте Xyster. Это основано на шаблоне Картопостроителя Данных.

кроме того, смотрите на DataMapper по сравнению с Активной Записью .

116
ответ дан 5 revs, 4 users 37% 23 November 2019 в 02:22
поделиться

Доктрина является, вероятно, Вашим лучшим выбором. До Доктрины DB_DataObject был по существу единственной другой утилитой, которая была открыта полученный.

1
ответ дан 2 revs, 2 users 73%anon 23 November 2019 в 02:22
поделиться

Можно проверить Отдых , если Вы чувствуете себя предприимчивыми. Как Выход , это смоделировано, после В спящем режиме .

все еще очень рано в своей разработке, но до сих пор единственные ограничения на модель предметной области - то, что классы не отмечены, финал и свойства не отмечены частные. Как только я вхожу в землю PHP> = 5.3, я попытаюсь реализовать поддержку частных собственностей также.

2
ответ дан Beau Simensen 23 November 2019 в 02:22
поделиться

Мне действительно нравится , Продвигают , здесь можно получить обзор, , документация довольно хороша, и можно получить ее через ГРУШУ или SVN.

Вам только нужна работа установка PHP5, и Phing, чтобы начать генерировать классы.

11
ответ дан CMS 23 November 2019 в 02:22
поделиться

Я разрабатывал Pork.dbObject самостоятельно. (Простой PHP ORM и Активная Рекордная реализация) главная причина состоит в том, что я нахожу большинство ORMs слишком тяжелый.

основная мысль о Pork.dbObejct должна быть легка и проста настроить. Никакой набор XML-файлов, всего один вызов функции в конструкторе обязать его, и addRelation или addCustomRelation определять отношение к другому dbObject.

Посмотрели на него: Pork.dbObject

28
ответ дан 3 revs, 3 users 76% 23 November 2019 в 02:22
поделиться

Я только что запустил с Kohana, и кажется, что самые близкие к Ruby on Rails, не вызывая всю сложность нескольких конфигурационных файлов как с Продвигают .

13
ответ дан 2 revs, 2 users 50% 23 November 2019 в 02:22
поделиться

Выезд выход ORM . Это более просто, чем Продвигают и Доктрина, и это работает подобное для Спящего режима, только с большим количеством чувства PHP к нему.

12
ответ дан Alvaro 23 November 2019 в 02:22
поделиться

Существует только два хороших: Доктрина и Продвигают . Мы одобряем Доктрину, и она работает хорошо с Symfony. Однако при поиске поддержки БД помимо основных, необходимо будет записать собственный код.

45
ответ дан 2 revs, 2 users 75% 23 November 2019 в 02:22
поделиться

Я в настоящее время работаю над phpDataMapper, который является ORM, разработанным для имения простого синтаксиса как проект Ruby Datamapper. Это находится все еще в ранней разработке также, но это работает отлично.

4
ответ дан Vance Lucas 23 November 2019 в 02:22
поделиться

До выпуска PHP 5.3 не ожидают иметь хороший ORM. Это - ограничение OO PHP.

3
ответ дан knoopx 23 November 2019 в 02:22
поделиться

Сделайте попытку dORM, объектно-реляционного картографа для PHP 5 . Он поддерживает все виды отношений (1-к-1), (1-ко-многим), (многие-ко-многим) и типы данных. Это совершенно незаметно: не требуется генерация кода или расширение классов. На мой взгляд, он превосходит любой ORM, включая Doctrine и Propel. Тем не менее, он все еще находится в бета-версии и может значительно измениться в ближайшие пару месяцев. http://www.getdorm.com

Он также имеет очень маленькую кривую обучения. Три основных метода, которые вы будете использовать:

<?php 
$object = $dorm->getClassName('id_here');
$dorm->save($object);
$dorm->delete($object);
6
ответ дан 23 November 2019 в 02:22
поделиться

If you are looking for an ORM, like Hibernate, you should have look at PMO.

It can be easily integrated in an SOA architecture (there is only a webservice classe to develop).

1
ответ дан 23 November 2019 в 02:22
поделиться

My friend Kien and I have improved upon an earlier version of an ORM that he had written prior to PHP 5.3. We have essentially ported over Ruby on Rails' Active Record to PHP. It is still lacking some key features we want such as transactions, composite primary key support, a few more adapters (only MySQL and SQLite 3 work right now). But, we are very close to finishing this stuff up. You can take a look at PHP ActiveRecord with PHP 5.3.

3
ответ дан 23 November 2019 в 02:22
поделиться

Попробуйте RedBean , для этого требуется:

  • Нет конфигурации
  • Нет базы данных (все создается на лету)
  • Нет моделей
  • и т. Д.

Он даже выполняет за вас все блокировки и транзакции, а также отслеживает производительность в фоновом режиме. (Черт возьми! Он даже занимается сборкой мусора ....) Лучше всего ... вам не нужно писать ни одной ... строчки кода ... Иисус это , ORM слой , спас мне задницу!

101
ответ дан 23 November 2019 в 02:22
поделиться

Попробуйте PHP ADOdb.

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

И он намного быстрее, чем Zend Framework DB / Select.

3
ответ дан 23 November 2019 в 02:22
поделиться

Лица PHP ORM для расширения PDO. См. PHP Faces Framework .

$urun = new Product();
$urun->name='CPU'
$urun->prince='124';
$urun->save();
2
ответ дан 23 November 2019 в 02:22
поделиться

Try Doctrine2. Это, вероятно, самый мощный инструмент ORM для PHP. Я упоминаю его отдельно от Doctrine 1, потому что это совершенно другое программное обеспечение. Она была переписана с нуля, все еще находится в стадии бета-тестирования, но уже доступна для использования и развивается.

Это очень сложный ORM, но хорошо продуманный. Много волшебства из оригинальной Doctrine 1 исчезло. Он предоставляет полное решение, и вы можете написать свой собственный ORM поверх Doctrine2 или использовать только один из его слоев.

22
ответ дан 23 November 2019 в 02:22
поделиться

Axon ORM является частью Fat-Free Framework - в нем есть средство отображения на лету. Без генераторов кода. Никаких дурацких конфигурационных файлов XML / YAML . Он считывает схему базы данных непосредственно из серверной части, поэтому в большинстве операций CRUD вам даже не нужно расширять базовую модель. Он работает со всеми основными PDO -поддерживаемыми механизмами баз данных: MySQL , SQLite , SQL Server / Sybase, Oracle, PostgreSQL и т. Д.

/* SQL */
CREATE TABLE products (
    product_id INTEGER,
    description VARCHAR(128),
    PRIMARY KEY (product_id)
);

/* PHP */
// Create
$product=new Axon('products'); // Automatically reads the above schema
$product->product_id=123;
$product->description='Sofa bed';
$product->save(); // ORM knows it's a new record

// Retrieve
$product->load('product_id=123');
echo $product->description;

// Update
$product->description='A better sofa bed';
$product->save(); // ORM knows it's an existing record

// Delete
$product->erase();

Прежде всего, подключаемый модуль и сопутствующий ему уровень доступа к данным SQL такие же легкие, как и фреймворк: 14 КБ (Axon) + 6 КБ (SQLdb). Без жира составляет всего 55 КБ.

33
ответ дан 23 November 2019 в 02:22
поделиться

Я нашел классы, связанные с ORM, в библиотеке PHP Flourish .

8
ответ дан 23 November 2019 в 02:22
поделиться

Попробовал ORM библиотеки Flourish.

4
ответ дан 23 November 2019 в 02:22
поделиться

Есть фантастический ORM, включенный в фреймворк QCubed; он основан на генерации кода и построении лесов. В отличие от ActiveRecord, который основан на отражении и в целом медленный, генерация кода создает для вас скелетные классы на основе базы данных и позволяет вам настраивать их впоследствии. Это работает как шарм.

1
ответ дан 23 November 2019 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: