<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Domain-Driven Design with Zend Framework</title>
	<atom:link href="http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/</link>
	<description>Simple is better than complex. Complex is better than complicated. &#124; @fedecarg</description>
	<lastBuildDate>Mon, 08 Mar 2010 06:09:25 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Federico</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-5303</link>
		<dc:creator>Federico</dc:creator>
		<pubDate>Thu, 11 Feb 2010 10:42:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-5303</guid>
		<description>Here&#039;s an example:

&lt;pre&gt;
class User {
    private $id; 
    private $name;
    private $password;

    public function setId($id)
    public function getId()
    public function setName($name)
    public function getName()
    public function setPassword($password)
    public function getPassword()
}

class UserRepository {
    public function find($id) 
}

class UserService {
    public function authenticate(User $user)
}
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Here&#8217;s an example:</p>
<pre>
class User {
    private $id;
    private $name;
    private $password;

    public function setId($id)
    public function getId()
    public function setName($name)
    public function getName()
    public function setPassword($password)
    public function getPassword()
}

class UserRepository {
    public function find($id)
}

class UserService {
    public function authenticate(User $user)
}
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juan</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-5302</link>
		<dc:creator>Juan</dc:creator>
		<pubDate>Thu, 11 Feb 2010 03:34:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-5302</guid>
		<description>Others said business logic should be in the domain and only those logic that are not fit to any entity or value objects should be placed in the service.</description>
		<content:encoded><![CDATA[<p>Others said business logic should be in the domain and only those logic that are not fit to any entity or value objects should be placed in the service.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Federico</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-5300</link>
		<dc:creator>Federico</dc:creator>
		<pubDate>Wed, 10 Feb 2010 15:35:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-5300</guid>
		<description>Well, its purpose is to hold methods that implement business logic. They do not provide methods to access data.</description>
		<content:encoded><![CDATA[<p>Well, its purpose is to hold methods that implement business logic. They do not provide methods to access data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juan</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-5295</link>
		<dc:creator>Juan</dc:creator>
		<pubDate>Tue, 09 Feb 2010 05:29:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-5295</guid>
		<description>Thanks federic. So what are the purpose of service classes then?</description>
		<content:encoded><![CDATA[<p>Thanks federic. So what are the purpose of service classes then?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Federico</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-5292</link>
		<dc:creator>Federico</dc:creator>
		<pubDate>Mon, 08 Feb 2010 10:20:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-5292</guid>
		<description>Repositories are not part of the Service Layer, they are part of the Domain Layer. The Repository provides a higher level of data manipulation, and acts as a link between the Domain and Persistence Layers (Entity - Repository - DAO).

Service classes are not part of the Domain or Persistence Layers and therefore do not provide methods to access data, such as finders. Finders are usually found in the Repository.</description>
		<content:encoded><![CDATA[<p>Repositories are not part of the Service Layer, they are part of the Domain Layer. The Repository provides a higher level of data manipulation, and acts as a link between the Domain and Persistence Layers (Entity &#8211; Repository &#8211; DAO).</p>
<p>Service classes are not part of the Domain or Persistence Layers and therefore do not provide methods to access data, such as finders. Finders are usually found in the Repository.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juan</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-5290</link>
		<dc:creator>Juan</dc:creator>
		<pubDate>Sat, 06 Feb 2010 00:41:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-5290</guid>
		<description>Hi,

I&#039;m confused about domain and service, can someone provide a sample code for domain and service in action?

Thanks</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I&#8217;m confused about domain and service, can someone provide a sample code for domain and service in action?</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olagato’s blog</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-4716</link>
		<dc:creator>Olagato’s blog</dc:creator>
		<pubDate>Tue, 03 Nov 2009 10:28:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-4716</guid>
		<description>[...] Por otra parte los mappers heredarán de Zend_Mapper. A esta nueva orientación se le denomina Domain Driven Design (DDD). Estoy siguiendo el tema con este libro y la verdad es que todo tiene muy buena pinta, aunque [...]</description>
		<content:encoded><![CDATA[<p>[...] Por otra parte los mappers heredarán de Zend_Mapper. A esta nueva orientación se le denomina Domain Driven Design (DDD). Estoy siguiendo el tema con este libro y la verdad es que todo tiene muy buena pinta, aunque [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: My Web Development Bookmarks</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-4649</link>
		<dc:creator>My Web Development Bookmarks</dc:creator>
		<pubDate>Thu, 22 Oct 2009 04:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-4649</guid>
		<description>[...] Read this article: Domain-Driven Design with Zend Framework « Federico Cargnelutti [...]</description>
		<content:encoded><![CDATA[<p>[...] Read this article: Domain-Driven Design with Zend Framework « Federico Cargnelutti [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-4618</link>
		<dc:creator>Roman</dc:creator>
		<pubDate>Thu, 15 Oct 2009 07:24:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-4618</guid>
		<description>Federico,

As far as I know, only Aggregate Root is recomended to have a Repository. I&#039;m really stuck with such implementation details. DDD concepts are obviosly  interesting, but I&#039;ve lots of misunderstandings relative to implementation :\</description>
		<content:encoded><![CDATA[<p>Federico,</p>
<p>As far as I know, only Aggregate Root is recomended to have a Repository. I&#8217;m really stuck with such implementation details. DDD concepts are obviosly  interesting, but I&#8217;ve lots of misunderstandings relative to implementation :\</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Federico</title>
		<link>http://blog.fedecarg.com/2009/03/22/zend-framework-domain-driven-design/#comment-2976</link>
		<dc:creator>Federico</dc:creator>
		<pubDate>Mon, 18 May 2009 16:37:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.fedecarg.com/?p=1468#comment-2976</guid>
		<description>Gotcha. I guess that, if you are working with DAOs, there are different ways of doing it. You already mentioned 2 of them I think. You could also have a repository that represents the relationship between both entities, for example, UserProfileRepository. And then use UserProfileDAO to query the database, join the User and Profile tables and return the data to the repository so it can populate the User and Profile objects.

I don&#039;t know if this is allowed in DDD, but I haven&#039;t develop a Repository that manages this complexity for me yet.</description>
		<content:encoded><![CDATA[<p>Gotcha. I guess that, if you are working with DAOs, there are different ways of doing it. You already mentioned 2 of them I think. You could also have a repository that represents the relationship between both entities, for example, UserProfileRepository. And then use UserProfileDAO to query the database, join the User and Profile tables and return the data to the repository so it can populate the User and Profile objects.</p>
<p>I don&#8217;t know if this is allowed in DDD, but I haven&#8217;t develop a Repository that manages this complexity for me yet.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
