![image][1] Уже закончен долгообещанная третья версия [PHPixie][2] ORM компонента. Он теперь полностью независим от фреймворка и может спокойно использоваться сам по себе. В связи с этим, пока продолжается работа над другими компонентами и пишется документация, разработчики составили [небольшой туториал][3] для того чтобы можно было уже начать работу с ОРМ. Ниже я предоставлю его перевод и добавлю несколько вещей от себя, но сначала давайте посмотрим чем полезным порадует нас эта версия:
* Большинство ORM используют Model классы, которые используются как для выполнения запросов так и для репрезентации самых записей в базе данных. Например так делают Kohana и Laravel. PHPixie разделила модель на Repository, Entity и Query, каждая из которых имеет строго свое предназначение.
* Кроме SQL баз данных (SQLite, PostgreSQL, MySQL) полностью поддерживается также Mongo. Вы сможете связать отношениями модели с SQL баз данных с моделями хранящимися в коллекциях Mongo.
* Чтобы поддерживать связи между разными базами ( например между таблицами в разных базах в MySQL ) много ORM используют отдельные запросы вместо join-ов и субзапросов. PHPixie же использует субзапросы всегда где это возможно.
* Поддержка встроенных сущностей в Mongo
* [На 97% покрыта юнит тестами][4] ( планируется 100% до конца этой недели), и еще на 75% функцыоналными тестами.
* Эффектывное использование Query позволяет уменьшить число запросов к базе. Например вам надо связать все топики автора с какими-то тегами. В большинстве ОРМ вам придется сначала найти топики, потом теги и тогда связать их ( 3 запроса к БД ). PHPixie позволяет сделать это за один запрос. Кстати пример этого есть в туториале снизу
Надеюсь я смог вас заинтересовать, теперь посмотрим на пример с ссылки вверху в переводе: [Читать дальше →][5]
[1]:
http://habrastorage.org/getpro/habr/post_images/a9e/60d/e1d/a9e60de1db7f9c18a643766e8aea6f4e.png
[2]:
http://phpixie.com
[3]:
https://github.com/PHPixie/ORM/blob/master/examples/quickstart.php
[4]:
http://phpixie.com/coverage/orm/ORM/index.html
[5]:
http://habrahabr.ru/post/252305/#habracut