<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Комментарии на: PHP Doctrine и большие проекты</title>
	<atom:link href="http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Wed, 10 Mar 2010 20:18:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>От: standov</title>
		<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-947</link>
		<dc:creator>standov</dc:creator>
		<pubDate>Mon, 27 Oct 2008 10:25:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.azazel.org.ua/2008/06/23/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-947</guid>
		<description>дополнение (не поместилось)
Doctrine сырой и тяжелый продукт с перегруженным API, Propel готовый, отточенный и легковесный с единственным недостатком - длительное вхождение.</description>
		<content:encoded><![CDATA[<p>дополнение (не поместилось)<br />
Doctrine сырой и тяжелый продукт с перегруженным API, Propel готовый, отточенный и легковесный с единственным недостатком - длительное вхождение.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: standov</title>
		<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-946</link>
		<dc:creator>standov</dc:creator>
		<pubDate>Mon, 27 Oct 2008 10:22:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.azazel.org.ua/2008/06/23/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-946</guid>
		<description>&#62; Основными минусами были низкая производительность и недостаточное качество кода (и синтаксис в том числе) - o Propel

Есть подозрение что вы пробовали 1.2, попробуйте 1.3, на рельных задачах он быстрее в 1,5 - 2 раза чем Доктрин, в т.ч. за счет очень мощного пула объектов, гараздо меньшему расходу памяти, более простой архитектуре (в частности инстансы не тягают за собой описание модели - отсутствие циклических ссылок), действительных багов уже давно не находится - елинственное исключение - поддержка нестед-сет, она простая (правда не проще чем в доктрин ;)).

Вообще, в реальном проекте командой поработали с доктрин 3 месяца, устав бороться с багами, диким расходом памяти и не соответствием документации реальному API была (у меня) задача оценить новый пропел - r слову юзал его с беты на своих проектах, показал реальные преимущества, через 2 дня порта проблем больше не имели.</description>
		<content:encoded><![CDATA[<p>&gt; Основными минусами были низкая производительность и недостаточное качество кода (и синтаксис в том числе) - o Propel</p>
<p>Есть подозрение что вы пробовали 1.2, попробуйте 1.3, на рельных задачах он быстрее в 1,5 - 2 раза чем Доктрин, в т.ч. за счет очень мощного пула объектов, гараздо меньшему расходу памяти, более простой архитектуре (в частности инстансы не тягают за собой описание модели - отсутствие циклических ссылок), действительных багов уже давно не находится - елинственное исключение - поддержка нестед-сет, она простая (правда не проще чем в доктрин ;)).</p>
<p>Вообще, в реальном проекте командой поработали с доктрин 3 месяца, устав бороться с багами, диким расходом памяти и не соответствием документации реальному API была (у меня) задача оценить новый пропел - r слову юзал его с беты на своих проектах, показал реальные преимущества, через 2 дня порта проблем больше не имели.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: ggeeek</title>
		<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-856</link>
		<dc:creator>ggeeek</dc:creator>
		<pubDate>Mon, 18 Aug 2008 14:39:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.azazel.org.ua/2008/06/23/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-856</guid>
		<description>Помоему Doctrine очень стОящая штука. Генератор таблиц и связей из yaml очень удобен и в то же самое время конфиг не морозит глаза как какой-нибудь xml-ый. По поводу "реализации бизнес-логики" - это с каких это пор ORM должна реализовывать бизнес-логику???? :)
Doctrine всегда был и будет более функциональным чем Propel.

Если портировать Hibernate на PHP то он явно не будет ввидел PHP кода, а только как расширение (dll).

Вообще "выставляя баллы" неплохо бы их подкреплять какими-либо доказательствами :)</description>
		<content:encoded><![CDATA[<p>Помоему Doctrine очень стОящая штука. Генератор таблиц и связей из yaml очень удобен и в то же самое время конфиг не морозит глаза как какой-нибудь xml-ый. По поводу &#8220;реализации бизнес-логики&#8221; - это с каких это пор ORM должна реализовывать бизнес-логику???? <img src='http://blog.azazel.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Doctrine всегда был и будет более функциональным чем Propel.</p>
<p>Если портировать Hibernate на PHP то он явно не будет ввидел PHP кода, а только как расширение (dll).</p>
<p>Вообще &#8220;выставляя баллы&#8221; неплохо бы их подкреплять какими-либо доказательствами <img src='http://blog.azazel.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: chiffa</title>
		<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-804</link>
		<dc:creator>chiffa</dc:creator>
		<pubDate>Fri, 04 Jul 2008 09:28:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.azazel.org.ua/2008/06/23/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-804</guid>
		<description>А хвалил-то, хвалил... Есть два больших и интересных промышленных подхода для реализации ORM:
- описываешь бизнес-объектов (БО), структуру БД и связи БО с таблицами. Запускаешь генератор и он тебе строгает по каждому БО класс модели с описанием API БО. В итоге имеешь большие и толстые классы, которые наследуешь, с не всегда оптимизированной логикой, которую ты поправить не можешь. Потому что следующая правка схемы -&#62; перегенерация восстановит базовый класс. 

- описываешь бизнес-объектов (БО), структуру БД и связи БО с таблицами. движок генерирует рантайм классы, кеширует и ты работаешь с ними через интерфейс, который виртуализирует вызовы. Тупая логика компенсируется руцями-прописанным маппингом и кусками SQL (в схеме). 

Первый подход есть для РНР (Propel, Doctrine), но по сравнению с тем же вылизанным hybernate для джавы - он тупо сосет, как младенец сиську.

Второго - нет :)

Все эти подходы ростут от ленивости писать заточенные классы сразу руками. Так что всегда в данный момент времени тебе просто надо искать баланс между сырым но типа крутым подходом и ручной работой.

Кстати думаю если спортировать hybernate или ibatis sqlmap на РНР, пых-пых будет большую часть ресурсов и времени тупо тратить на их логику. Язык все-таки легковесный, не тягаться ему с джавой по мощностям.</description>
		<content:encoded><![CDATA[<p>А хвалил-то, хвалил&#8230; Есть два больших и интересных промышленных подхода для реализации ORM:<br />
- описываешь бизнес-объектов (БО), структуру БД и связи БО с таблицами. Запускаешь генератор и он тебе строгает по каждому БО класс модели с описанием API БО. В итоге имеешь большие и толстые классы, которые наследуешь, с не всегда оптимизированной логикой, которую ты поправить не можешь. Потому что следующая правка схемы -&gt; перегенерация восстановит базовый класс. </p>
<p>- описываешь бизнес-объектов (БО), структуру БД и связи БО с таблицами. движок генерирует рантайм классы, кеширует и ты работаешь с ними через интерфейс, который виртуализирует вызовы. Тупая логика компенсируется руцями-прописанным маппингом и кусками SQL (в схеме). </p>
<p>Первый подход есть для РНР (Propel, Doctrine), но по сравнению с тем же вылизанным hybernate для джавы - он тупо сосет, как младенец сиську.</p>
<p>Второго - нет <img src='http://blog.azazel.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Все эти подходы ростут от ленивости писать заточенные классы сразу руками. Так что всегда в данный момент времени тебе просто надо искать баланс между сырым но типа крутым подходом и ручной работой.</p>
<p>Кстати думаю если спортировать hybernate или ibatis sqlmap на РНР, пых-пых будет большую часть ресурсов и времени тупо тратить на их логику. Язык все-таки легковесный, не тягаться ему с джавой по мощностям.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Алексей Токарь</title>
		<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-771</link>
		<dc:creator>Алексей Токарь</dc:creator>
		<pubDate>Mon, 23 Jun 2008 21:03:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.azazel.org.ua/2008/06/23/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-771</guid>
		<description>К сожалению не довелось, так как Propel был отброшен еще на стадии анализа требований и возможностей... Основными минусами были низкая производительность и недостаточное качество кода (и синтаксис в том числе)

Дополнительно хотел бы еще сказать что хоть Propel более функциональный, но тем не менее уже Doctrine более чем достаточно. Я бы даже сказал - чересчур. Вместо расширяемость в ширь, я бы, на месте автора, расширялся вглубь (а багов-то и просто мест для рефакторинга реально хватает)</description>
		<content:encoded><![CDATA[<p>К сожалению не довелось, так как Propel был отброшен еще на стадии анализа требований и возможностей&#8230; Основными минусами были низкая производительность и недостаточное качество кода (и синтаксис в том числе)</p>
<p>Дополнительно хотел бы еще сказать что хоть Propel более функциональный, но тем не менее уже Doctrine более чем достаточно. Я бы даже сказал - чересчур. Вместо расширяемость в ширь, я бы, на месте автора, расширялся вглубь (а багов-то и просто мест для рефакторинга реально хватает)</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Сергей</title>
		<link>http://blog.azazel.org.ua/2008/06/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-770</link>
		<dc:creator>Сергей</dc:creator>
		<pubDate>Mon, 23 Jun 2008 17:18:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.azazel.org.ua/2008/06/23/php-doctrine-%d0%b8-%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b/#comment-770</guid>
		<description>Алексей, а ты случаем Propel не пробовал? Интересно твоё мнение по этому поводу.</description>
		<content:encoded><![CDATA[<p>Алексей, а ты случаем Propel не пробовал? Интересно твоё мнение по этому поводу.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
