Doctrine: ORM для php

Doctrine: ORM для php

Пристально разглядывал ORM для php Doctrine. Это как обычно в таких случаях сильный закос в сторону Rails и его реализации ActiveRecord.

Что есть. Да вообще то есть почти все. Ну, собственно AR, Ну всевозможные findBy и actsAs, есть абстракция от реализации конкретной СУБД (штук 8 субд на выбор, MySQL, postgreSQL присутствуют). Это сделано путем внедрения DQL (Doctrine Query Language) - некий генерический SQL, который переписывается конкретным драйвером в платформо-зависимый код. Присутствуют миграции, экспорт-импорт в yaml и вроде бы основное все, и вроде бы есть что-то еще. 

Разработчики говорят:

Doctrine is an ORM (object relational mapper) for PHP 5.2.x+ that sits on top of a powerful DBAL (database abstraction layer). One of its key features is the ability to optionally write database queries in an OO (object oriented) SQL-dialect called DQL inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains a maximum of flexibility without requiring needless code duplication. 

 

Из замеченного: явоподобный объектно-ориентированный код, тонны инклудов, отъедает кучу памяти, прогрессивно больше в зависимости от сложности операции. Правда, разработчики сразу же предлагают полуавтоматическую сборку основных инклудов в один файл. Есть ли от этого толк или нет - не знаю, не успел проверить. Теоретически, должен быть.

Использует PDO и не работает на php старее чем 5.2 (и нехай, хочется добавить)

Статус - бета. И это заметно. Часть кода работает, мягко говоря, странно. Девелопмент версия сильно отличается от текущей стабильной даже на уровне интерфейсов основных классов, причем это не отражается в отдельно присутствующей dev-документации.

В целом мне эта штука понравилась, серьезно думаю об использовании в своих проектах. Почему? Ответ прост - альтернатив такого плана на php почти нет. Да и не надо бы, но ведь знаю, что понаделают :-).

Комментарии (1)

mem: 1150 total: 38 module: 26 xsl: 7