<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Tue, 21 May 2013 10:56:17 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Wojciech Sznapka: Is Symfony2 a MVC framework?]]></title>
      <guid>http://www.phpdeveloper.org/news/18696</guid>
      <link>http://www.phpdeveloper.org/news/18696</link>
      <description><![CDATA[<p>
In his latest post <i>Wojciech Sznapka</i> wonders if <a href="http://blog.sznapka.pl/is-symfony2-a-mvc-framework/">Symfony2 is actually MVC</a> or if it's just the "C" and "V" in the equation with the "M" (Model) layer being left wide open.
</p>
<blockquote>
The question is: where is Model layer in Symfony2? My answer is: there's ain't one and it's good.. Symfony2 isn't hardly bounded with Model layer, as it could have been seen in first version. We can see many Active Record model implementations in modern web frameworks such as Ruby on Rails, Django and symfony 1. I'm not saying those solutions are bad. The main problem was, that big systems maintained by plenty of developers changing over time tends to have a messy codebase. The common place to locate business logic were Model layer. The result of that approach were huge model classes, randomly structured Table/Peer classes full of static method and general feeling that system is hardly impossible to maintain anymore.
</blockquote>
<p>
He talks about the main problem that comes from this style of coding - overly complex systems - and one possible way to help mitigate them using domain-driven design practices. He lists a few of the things that Symfony2 comes with that could be helpful for this method including the dependency injection container, the use of entities, repositories and value objects.
</p>]]></description>
      <pubDate>Mon, 05 Nov 2012 10:18:44 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Tibo Beijen's Blog: DDD using Doctrine 2: A case study]]></title>
      <guid>http://www.phpdeveloper.org/news/16528</guid>
      <link>http://www.phpdeveloper.org/news/16528</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Tibo Beijen</i> <a href="http://www.tibobeijen.nl/blog/2011/06/27/ddd-using-doctrine-2-a-case-study/">presents a case study</a> about doing Domain Driven Design in an application using <a href="http://www.doctrine-project.org/projects/orm/2.0/docs/en">Doctrine2</a> to work with objects and your database.
</p>
<blockquote>
Nowadays developing web applications usually requires a flexible process due to changing business logic, shifting priorities or new insights. Besides choosing the right methodology this also requires designing the application in such a way that this flexibility can be achieved. [...] In this article I will show how to implement a specific case using Doctrine 2. Full code accompanying this article can be <a href="https://github.com/TBeijen/DDD-HRM/tree/v001">found on GitHub</a>. 
</blockquote>
<p>
He starts by describing the entities (User/TimeSheet/TimeSheetStatusChange) and how they're defined in Doctrine objects. He modifies them to build in some business-level restrictions like "status changes are only allowed in a certain order". He shows that the domain models presented are about more than just working with the database tables. They enforce rules that effect the flow of the application as well.
</p>]]></description>
      <pubDate>Tue, 28 Jun 2011 10:54:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Bradley Holt's Blog: Immutable Value Objects in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/15217</guid>
      <link>http://www.phpdeveloper.org/news/15217</link>
      <description><![CDATA[<p>
<i>Bradley Holt</i> has a new post to his blog about a subject he's recently been learning about, Domain-Driven Design, and how <a href="http://bradley-holt.com/2010/09/immutable-value-objects-in-php/">immutable value objects could be useful in PHP</a>.
</p>
<blockquote>
Yesterday I <a href="http://twitter.com/BradleyHolt/status/25911903352">tweeted</a>: Modern object-oriented programming languages need support for immutable Value Objects. #DDD The "DDD" in that tweet stands for <a href="http://en.wikipedia.org/wiki/Domain-driven_design">Domain-Driven Design</a>. There were several interesting responses to this tweet.
</blockquote>
<p>
Responses to his tweet included comments from <a href="http://paste2.org/p/1009796">Matthew Weier O'Phinney</a>, <a href="http://gist.github.com/603496">Ralph Schindler</a>, <a href="http://twitter.com/nicolasbn/status/25942269645">Nicolas Berard-Nault</a> and <a href="http://twitter.com/giorgiosironi/status/25914287997">Giorgio Sironi</a>. He notes that, while all of the suggestions are good, they're only half of the issue. They make it immutable when defined but not during execution. Currently PHP lacks this functionality, but something like this could be worked in with the concept of a "final" class.
</p>]]></description>
      <pubDate>Fri, 01 Oct 2010 11:15:40 -0500</pubDate>
    </item>
  </channel>
</rss>
