Feed Rss



Сен 03 2009

Doctrine, к тебе PHP5.3 пришел!

Рубрика: Java,PHP Автор: Алексей Токарь

Все вы наверное знаете, что Doctrine была написана под впечатлением от Hibernate. Особенно разработчикам понравился HQL, который стал прототипом для DQL – объектного языка запросов. Но из-за многих ограничений в РНР, ОРМ получилась с костылями. Так, например, нарушался принцип инкапсуляции, ведь все свойства объектов всегда получаются публичными, но теперь, когда в РНР5.3 рефлексия стала более полноценной этого можно избежать.

Более того, теперь свойства можно объявить как свойства класса, а не через конструкцию-костыль hasColumn, а при помощи рефлексии напрямую вставлять значение из БД в нужное свойство. Это улучшит продуктивность тех программистов, что используют IDE с автодополнениями и анализаторами ошибок.

Остается еще один крупный костыль – невозможность определить полноценный конструктор для объектов, так как Doctrine конструкторы приватизировала и использует их для своих нужд. Нормальной же перегрузки в РНР нет, так как язык не строго типизирован и как результат – увидеть нормальные конструкторы нам пока что не суждено (хотя ходят слухи, что в РНР6 эта вкусность появится на уровне «можно включить»).

Так что остается ждать, когда архитектура Doctrine измениться ко всем вкусностям и надеяться что
это будет скоро…

Понравился пост? Подпишись на RSS!

Метки: , , , ,

Один ответ на “Doctrine, к тебе PHP5.3 пришел!”

  1. nikelin says:

    Ах, прям такой джавовской-джавовской она стала =)

    Особенно прикольно, что вместо hasColumn они начали использовать аннотации, не говоря уже о переработанном создателе запросов.

Оставить комментарий