
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)