<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: What Should An ORM Offer?</title>
	<atom:link href="http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/</link>
	<description>Stuart Herbert's PHP Blog - Architecture, Code, and Hosting</description>
	<lastBuildDate>Fri, 20 Aug 2010 11:10:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Seelaz</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-64497</link>
		<dc:creator>Seelaz</dc:creator>
		<pubDate>Fri, 23 Oct 2009 03:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-64497</guid>
		<description>Im currently working in a orm implementation that is in short: &quot;annotated beans, like in hibernate with annotated classes for metadata&quot;. Supporting the common reationships between objects, inheritance mapping strategies, lazy fetching and you dont need to extend a single object from the framework, but instead of an array i use an object called collection that behaves like the java arraylist. Its docummented in brazillian portuguese ,since im brazillian, but i wanted to know if such solution has acceptance by the developers. its gpl and i would be happy to feed more details if you want. Mail me at seelaz@gmail.com for further details. Thanks.</description>
		<content:encoded><![CDATA[<p>Im currently working in a orm implementation that is in short: &#8220;annotated beans, like in hibernate with annotated classes for metadata&#8221;. Supporting the common reationships between objects, inheritance mapping strategies, lazy fetching and you dont need to extend a single object from the framework, but instead of an array i use an object called collection that behaves like the java arraylist. Its docummented in brazillian portuguese ,since im brazillian, but i wanted to know if such solution has acceptance by the developers. its gpl and i would be happy to feed more details if you want. Mail me at <a href="mailto:seelaz@gmail.com">seelaz@gmail.com</a> for further details. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Kleijn</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-32780</link>
		<dc:creator>John Kleijn</dc:creator>
		<pubDate>Wed, 26 Nov 2008 10:50:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-32780</guid>
		<description>@steve

Exactly! I used to create Domain Objects and Data Mappers manually, and while it was a lot more work to create the Data Mappers, I definitely miss the flexibility since I have moved to Doctrine.

What we need is something that has the flexibility of Data Mapper, with the ease of using an ORM.</description>
		<content:encoded><![CDATA[<p>@steve</p>
<p>Exactly! I used to create Domain Objects and Data Mappers manually, and while it was a lot more work to create the Data Mappers, I definitely miss the flexibility since I have moved to Doctrine.</p>
<p>What we need is something that has the flexibility of Data Mapper, with the ease of using an ORM.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pimpinken</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-26730</link>
		<dc:creator>pimpinken</dc:creator>
		<pubDate>Mon, 11 Aug 2008 01:22:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-26730</guid>
		<description>I think doctrine offers the best and most complete implementation of an orm in php. It is still new but is a great start and things move very fast. I would check it out.</description>
		<content:encoded><![CDATA[<p>I think doctrine offers the best and most complete implementation of an orm in php. It is still new but is a great start and things move very fast. I would check it out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alvaro Carrasco</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-21510</link>
		<dc:creator>Alvaro Carrasco</dc:creator>
		<pubDate>Sat, 24 May 2008 00:47:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-21510</guid>
		<description>- Transparent. No &#039;extends ActiveRecord&#039;, or &#039;extends Persistent&#039;, or ::save() methods on my entities.

- Entities that look good when you &#039;print_r&#039; them. When I print_r or var_dump an entity it should only show what I expect there: the entity properties. No database configuration, mappings, connection objects, or collections cache.

- Public properties for table fields. No need to create getters and setters for each field in PHP (just my preference).

- Easy to use straight sql when needed.

Since I couldn&#039;t find one that met my needs (I&#039;ve mostly used propel in the past), I wrote my own: http://outlet.knowledgehead.com (It&#039;s open source) I wouldn&#039;t recommend it for a production project yet (still version 0.1) but it&#039;s working great for me so far and I would love to get some feedback.</description>
		<content:encoded><![CDATA[<p>- Transparent. No &#8216;extends ActiveRecord&#8217;, or &#8216;extends Persistent&#8217;, or ::save() methods on my entities.</p>
<p>- Entities that look good when you &#8216;print_r&#8217; them. When I print_r or var_dump an entity it should only show what I expect there: the entity properties. No database configuration, mappings, connection objects, or collections cache.</p>
<p>- Public properties for table fields. No need to create getters and setters for each field in PHP (just my preference).</p>
<p>- Easy to use straight sql when needed.</p>
<p>Since I couldn&#8217;t find one that met my needs (I&#8217;ve mostly used propel in the past), I wrote my own: <a href="http://outlet.knowledgehead.com" rel="nofollow">http://outlet.knowledgehead.com</a> (It&#8217;s open source) I wouldn&#8217;t recommend it for a production project yet (still version 0.1) but it&#8217;s working great for me so far and I would love to get some feedback.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Larry Garfield</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-21207</link>
		<dc:creator>Larry Garfield</dc:creator>
		<pubDate>Sat, 17 May 2008 15:54:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-21207</guid>
		<description>- No code generation.  Code generation means repeating yourself, but being lazy and making the computer repeat yourself for you.  That&#039;s still repeating yourself.

- Multi-entity operations.  I want to be able to write &quot;make all books written by author with name &#039;Bob&#039; have the publisher named &#039;Addison-Wesley&#039;&quot;, and have it not generate N queries.  In straight SQL, I can do that in a single query with a subselect.  With an ORM, some extra overhead is acceptable but it should not be more than 4 queries.  (Find author Bob, find all his books, find publisher, set publisher.)

- Don&#039;t do string parsing.  String parsing is nasty, error prone, and difficult to debug.  If I wanted to write a custom language that gets parsed back into a data structure, I&#039;d write SQL.  

- Transparent.  I should always be able to bypass the ORM and hit the SQL directly to run any query I want.  That means the underlying tables should be properly normalized, not a bunch of serialized PHP data structures.</description>
		<content:encoded><![CDATA[<p>- No code generation.  Code generation means repeating yourself, but being lazy and making the computer repeat yourself for you.  That&#8217;s still repeating yourself.</p>
<p>- Multi-entity operations.  I want to be able to write &#8220;make all books written by author with name &#8216;Bob&#8217; have the publisher named &#8216;Addison-Wesley&#8217;&#8221;, and have it not generate N queries.  In straight SQL, I can do that in a single query with a subselect.  With an ORM, some extra overhead is acceptable but it should not be more than 4 queries.  (Find author Bob, find all his books, find publisher, set publisher.)</p>
<p>- Don&#8217;t do string parsing.  String parsing is nasty, error prone, and difficult to debug.  If I wanted to write a custom language that gets parsed back into a data structure, I&#8217;d write SQL.  </p>
<p>- Transparent.  I should always be able to bypass the ORM and hit the SQL directly to run any query I want.  That means the underlying tables should be properly normalized, not a bunch of serialized PHP data structures.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gasper_k</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-21000</link>
		<dc:creator>gasper_k</dc:creator>
		<pubDate>Tue, 13 May 2008 08:34:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-21000</guid>
		<description>DG: no. :)</description>
		<content:encoded><![CDATA[<p>DG: no. <img src='http://blog.stuartherbert.com/php/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DG</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-20804</link>
		<dc:creator>DG</dc:creator>
		<pubDate>Fri, 09 May 2008 12:52:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-20804</guid>
		<description>Doesn&#039;t Propel (http://propel.phpdb.org) already do most (if not all) of the things people are asking for?</description>
		<content:encoded><![CDATA[<p>Doesn&#8217;t Propel (<a href="http://propel.phpdb.org" rel="nofollow">http://propel.phpdb.org</a>) already do most (if not all) of the things people are asking for?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gasper_k</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-20790</link>
		<dc:creator>gasper_k</dc:creator>
		<pubDate>Fri, 09 May 2008 09:25:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-20790</guid>
		<description>What I miss most with Propel, is some sort of an Identity Map. Two subsequent calls to ObjectPeer::retrieveByPk(1) actually return a different object, which can become very bothersome with larger object graphs.</description>
		<content:encoded><![CDATA[<p>What I miss most with Propel, is some sort of an Identity Map. Two subsequent calls to ObjectPeer::retrieveByPk(1) actually return a different object, which can become very bothersome with larger object graphs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edward</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-20784</link>
		<dc:creator>Edward</dc:creator>
		<pubDate>Fri, 09 May 2008 08:56:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-20784</guid>
		<description>Have a look at &lt;a href=&quot;http://www.qcodo.com&quot; rel=&quot;nofollow&quot;&gt;Qcodo&lt;/a&gt;. Although this is a framework, the ORM is separate and can be used independently of the view component.

It&#039;s the best PHP ORM I&#039;ve found. Features include:
- Solid PHP5 OO code
- Lightweight
- Easy to extend
- Code generation for all data classes
- Understands foreign key relationships
- Supports many-to-many relationships</description>
		<content:encoded><![CDATA[<p>Have a look at <a href="http://www.qcodo.com" rel="nofollow">Qcodo</a>. Although this is a framework, the ORM is separate and can be used independently of the view component.</p>
<p>It&#8217;s the best PHP ORM I&#8217;ve found. Features include:<br />
- Solid PHP5 OO code<br />
- Lightweight<br />
- Easy to extend<br />
- Code generation for all data classes<br />
- Understands foreign key relationships<br />
- Supports many-to-many relationships</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Gauthier</title>
		<link>http://blog.stuartherbert.com/php/2008/05/08/what-should-an-orm-offer/comment-page-1/#comment-20761</link>
		<dc:creator>Michael Gauthier</dc:creator>
		<pubDate>Fri, 09 May 2008 01:01:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.stuartherbert.com/php/?p=41#comment-20761</guid>
		<description>My wish list:
 - Object-Oriented PHP5
 - Uses an iterator interface object that is separate from the recordset itself ala Java collections.
 - Support non-numeric primary keys
 - Support multi-column primary keys
 - Support many-to-many relationships
 - serializable objects</description>
		<content:encoded><![CDATA[<p>My wish list:<br />
 &#8211; Object-Oriented PHP5<br />
 &#8211; Uses an iterator interface object that is separate from the recordset itself ala Java collections.<br />
 &#8211; Support non-numeric primary keys<br />
 &#8211; Support multi-column primary keys<br />
 &#8211; Support many-to-many relationships<br />
 &#8211; serializable objects</p>
]]></content:encoded>
	</item>
</channel>
</rss>
