<?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 16:15:16 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Benjamin Eberlei: Doctrine and SOLID]]></title>
      <guid>http://www.phpdeveloper.org/news/19137</guid>
      <link>http://www.phpdeveloper.org/news/19137</link>
      <description><![CDATA[<p>
<i>Benjamin Eberlei</i> has a new post to his site today answering a question he sometimes gets about <a href="http://www.whitewashing.de/2013/02/04/doctrine_and_solid.html">using Doctrine2 in a SOLID context</a> (more on SOLID development <a href="http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)">here</a>) as it seems difficult to follow the Single Responsibility Principle with how the tool is used.
</p>
<blockquote>
These problems are related to the inability to share behavioral code through aggregation and the complexity of state transformations. Combining both, your average entity with 5-15 fields can end up with hundrets or thousands lines of code. The solutions to both problems boil down to <a href="http://www.jbrains.ca/permalink/the-four-elements-of-simple-design">minimizing duplication and maximizing clarity</a>.
</blockquote>
<p>
He looks at two different kinds of objects Doctrine uses in its setup, the value objects and method objects, and "maximize clarity" on them by dividing them up into more functional-related objects, passed into each other via method injection.
</p>]]></description>
      <pubDate>Tue, 05 Feb 2013 11:09:33 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Devis Lucato's Blog: Anonymous objects in PHP - Composition, Mocks, Refactoring]]></title>
      <guid>http://www.phpdeveloper.org/news/15480</guid>
      <link>http://www.phpdeveloper.org/news/15480</link>
      <description><![CDATA[<p>
In <a href="http://lucato.it/php-anonymous-objects">a new post</a> to his blog <i>Devis Lucato</i> points out something he noticed when working with objects and anonymous functions/closures - they're not all as they seem.
</p>
<blockquote>
Both solutions allow to instantiate an anonymous object with properties. They are used as value objects and have no other purpose than storing values, so no logic can be included and they don't come with methods.  They can be used as function parameters instead of arrays, for instance. PHP 5.3.0 introduced anonymous functions and closures, so it is now possible to attach functions to these VOs (*). [...] The first thing to notice is that these properties are not methods but callable functions:
</blockquote>
<p>
In his example, an anonymous function dynamically appended to an object doesn't have access to a property set on the object just one line before. There's a way around it with <a href="http://php.net/call_user_func">call_user_func</a>, but it's not practical. His proposed solution is to create a type of Anonymous class that uses the __call method to catch the methods and translate them into calls to <a href="http://php.net/call_user_func_array">call_user_func_array</a> automatically. 
</p>]]></description>
      <pubDate>Tue, 23 Nov 2010 13:17:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Rob Allen's Blog: A review of "Learning PHP Data Objects"]]></title>
      <guid>http://www.phpdeveloper.org/news/10113</guid>
      <link>http://www.phpdeveloper.org/news/10113</link>
      <description><![CDATA[<p>
<i>Rob Allen</i> has <a href="http://akrabat.com/2008/05/04/a-review-of-learning-php-data-objects/">posted a review</a> of the Packt Publishing book "Learning PHP Data Objects" over on his blog today:
</p>
<blockquote>
<a href="http://www.packtpub.com/">Packt Publishing</a> recently sent me a couple of books to review. This post is about the second one I received, <a href="http://www.packtpub.com/oop-php-5/book">Learning PHP Data Objects</a> by Dennis Popel. I was excited to receive this book as PDO underlies a lot of the Zend_Db_Adapter objects that I use in my day to day programming. It seemed like a good idea that I should know more about it.
</blockquote>
<p>
He <a href="http://akrabat.com/2008/05/04/a-review-of-learning-php-data-objects/">provides some good detail</a> of what the book covers (chapter by chapter) as well as a summary including his recommendation for who should use the book and how they can best enjoy its contents.
</p>]]></description>
      <pubDate>Mon, 05 May 2008 13:44:10 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Book Review: Learning PHP Data Objects]]></title>
      <guid>http://www.phpdeveloper.org/news/9323</guid>
      <link>http://www.phpdeveloper.org/news/9323</link>
      <description><![CDATA[<p>
The Zend Developer Zone has <a href="http://devzone.zend.com/article/2852-Book-Review-Learning-PHP-Data-Objects">posted a review</a> of Packt Publishing's "Learning PHP Data Objects" book writen up by <i>Akash Mehta</i>.
</p>
<blockquote>
In Learning PHP Data Objects, the author Dennis Popel examines this new [database access] system and explains how to begin using PDO in development as a replacement for typical database drivers. The book is an excellent introduction to the data abstraction layer and also provides essential insight into the inner workings of database interaction with PHP.
</blockquote>
<p>
<i>Akash</i> talks briefly about the history of PDO and what it can be used for first, then gets into the contents of the book (things like the intro chapters and the quality of the writing). The thing he thinks makes the bok stand out, though, is the examples and sample code that reflect both simple methods and more complex issues PDO developers might run into.
</p>]]></description>
      <pubDate>Fri, 28 Dec 2007 07:58:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[International PHP Magazine: Poll Question: Which PHP Script Manages FAQs Effectively?]]></title>
      <guid>http://www.phpdeveloper.org/news/6657</guid>
      <link>http://www.phpdeveloper.org/news/6657</link>
      <description><![CDATA[<p>
The International PHP Magazine has posted <a href="http://www.php-mag.net/magphpde/magphpde_news/psecom,id,26526,nodeid,5.html">the results</a> of their latest reader poll for the week. The question they posed to visitors of their site asked about their favorite FAQ manager from those on the list:
<ul>
<li>phpMyFAQ
<li>ODFaq
<li>Lethal Penguin's FAQMasterFlex
<li>All
<li>None
</ul>
The result was a resounding 60% for the first on the list - phpMyFAQ. Next down in ranking was the "None" option, making phpMyFAQ the undisputed champ for FAQ management in PHP (well, at least for this poll).
</p>
<p>
Be sure to check out <a href="http://www.php-mag.net/magphpde/magphpde_news/psecom,id,26527,nodeid,5.html">this week's poll</a> that asks which of the four options is the most common perspective regarding objects in PHP.
</p>]]></description>
      <pubDate>Tue, 07 Nov 2006 09:04:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Sebastian Bergmann on ZendCon and PHPUnit 3]]></title>
      <guid>http://www.phpdeveloper.org/news/6530</guid>
      <link>http://www.phpdeveloper.org/news/6530</link>
      <description><![CDATA[<p>
On the Zend Developer Zone site today, <i>Cal Evans</i> had a chance to talk with <i>Sebastian Bergmann</i>, the lead coder on the <a href="http://www.phpunit.de/">PHPUnit</a> unit testing project for <a href="http://devzone.zend.com/node/view/id/1089">an interview</a>:
</p>
<blockquote>
<a href="http://sebastian-bergmann.de/">Sebastian Bergmann</a> works at <a href="http://ez.no/">eZ systems</a>. In his spare time he wrote and maintains the PHPUnit project. (He's worked on other project but since that's what he's talking about at <a href="http://www.zendcon.com/">ZendCon</a>, that's what we'll talk about)
</blockquote>
<p>
The interview is only a few questions long, but it's interesting to see how <i>Sebastian</i>'s talk will be heading. There'll be talk of PHPUnit 3 (still in beta), mock objects, and its integration with CruiseControl. Check out <a href="http://devzone.zend.com/node/view/id/1089">the post</a> for more of the questions.
</p>]]></description>
      <pubDate>Thu, 19 Oct 2006 07:58:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Controlling Online Forms with Builder Objects in PHP 5 (Part 2)]]></title>
      <guid>http://www.phpdeveloper.org/news/6481</guid>
      <link>http://www.phpdeveloper.org/news/6481</link>
      <description><![CDATA[<p>
DevShed is continuing their "using builder objects in PHP5" series today with <a href="http://www.devshed.com/c/a/PHP/Controlling-Online-Forms-with-Builder-Objects-in-PHP-5/">this new article</a>, a look at implementing the builder objects in a simple, common bit of functionality - forms.
</p>
<blockquote>
Mastering some of the most popular design patterns with PHP 5 can be sometimes an overwhelming process that requires hard work and experience. However, if you want to tackle the challenge and expand your existing background on them, this article might eventually find a place on your quick reference list.
</blockquote>
<p>
They start by defining the basic form element class, helping to build out the different elemnts like inputs, selects, and submits. They <a href="http://www.devshed.com/c/a/PHP/Controlling-Online-Forms-with-Builder-Objects-in-PHP-5">extend and implement</a> this class with their example, making a complete form with working elements inside.
</p>]]></description>
      <pubDate>Wed, 11 Oct 2006 14:49:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Wez Furlong's Blog: PDO FUD; less anecdotes, more facts]]></title>
      <guid>http://www.phpdeveloper.org/news/6132</guid>
      <link>http://www.phpdeveloper.org/news/6132</link>
      <description><![CDATA[<p>
In <a href="http://netevil.org/node.php?nid=902">his latest post</a>, <i>Wez Furlong</i> responds to some of <a href="http://www.phpdeveloper.org/news/6130">Jacob Santos' comments</a> made earlier today about Service Data Objects (SDO).
</p>
<blockquote>
I was just skimming over <a href="http://www.santosj.name/php/why-sdo-doesnt-take-off/">Santos' Post about SDO</a>, and was saddened to see more anecdotes and less facts.
</blockquote>
<p>
Specifically, he <a href="http://netevil.org/node.php?nid=902">mentions two points</a> - one dealing with the definition <i>Jacob</i> gave for the functionality and the other pointing out some <a href="http://netevil.org/node.php?uuid=444a6017-0548-2459-2943-44a601714d58">better stats</a> that <i>Jscob</i> didn't include in his comments.
</p>]]></description>
      <pubDate>Thu, 24 Aug 2006 13:14:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jacob Santos' Blog: Why SDO Doesn't Take Off]]></title>
      <guid>http://www.phpdeveloper.org/news/6130</guid>
      <link>http://www.phpdeveloper.org/news/6130</link>
      <description><![CDATA[<p>
In <a href="http://www.santosj.name/php/why-sdo-doesnt-take-off/">his latest</a>, <i>Jacob Santos</i> asks the question more and more people are wanting to know - why hasn't SDO really taken off?
</p>
<blockquote>
Developers will eventually start using it, it will take some time to go from the PHP way to SDO way. It would be easier to jump into SDO once better, more easily interpreted and simple to understand tutorials, code samples, and support is available. IBM tutorials are a little bit technical, with words and complex pictures (UML). Just give me code and explain how it works and let me run with the SDO scissors in my hand.
</blockquote>
<p>
He <a href="http://www.santosj.name/php/why-sdo-doesnt-take-off/">talks about</a> the contributions that both Zend and IBM have made to the effort and the lack of features (well, the duplication of current PHP features - XML and database functionality). He has a positive outlook for the overall future of the project, stating that:
</p>
<blockquote>
I'm quite sure that enough PHP developers are going to embrace SDO in the coming years depending on the coverage it gets that IBM and Zend's investment will pay off in the end.
</blockquote>]]></description>
      <pubDate>Thu, 24 Aug 2006 08:47:09 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Wez Furlong's Blog: SDO, SOA, TLA?]]></title>
      <guid>http://www.phpdeveloper.org/news/6036</guid>
      <link>http://www.phpdeveloper.org/news/6036</link>
      <description><![CDATA[<p>
<i>Wez Furlong</i> <a href="http://netevil.org/node.php?nid=895">asks today</a> for any kind of feedback he can get from readers about the <a href="http://www.php.net/sdo">Service Data Objects</a> functionality in PHP, specifically questions you might have about them.
</p>
<blockquote>
One of the things that was apparent was that this SDO stuff has quite a high barrier to entry--too many three letter acronyms for starters, and its origins in the C++ and Java world don't help make it very accessible to the typical PHP developer.
</blockquote>
<p>
<i>Wez</i> references <a href="http://devzone.zend.com/node/view/id/757">two</a> <a href="http://devzone.zend.com/node/view/id/790">articles</a> over on the Zend Developer Zone as great places to get started. He also mentions giving some feedback to the IBM folks about the SDO extension:
</p>
<blockquote>
If you've wondered what this SDO stuff is all about, please read through those articles. After having done that, if theres something you're not clear on, or if everything is clear, or if you have some other thoughts on the matter, then please take a moment to send your feedback to Graham Charters (you'll find his email address on the top of the articles).
</blockquote>]]></description>
      <pubDate>Tue, 15 Aug 2006 07:24:40 -0500</pubDate>
    </item>
  </channel>
</rss>
