<?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>Mon, 20 May 2013 00:06:37 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Alex Bilbie: Introducing MongoQB]]></title>
      <guid>http://www.phpdeveloper.org/news/18759</guid>
      <link>http://www.phpdeveloper.org/news/18759</link>
      <description><![CDATA[<p>
<i>Alex Bilbie</i> has passed along a link to a project he's been working on to try to simplify access to MongoDB databases from PHP - his <a href="http://alexbilbie.com/2012/11/introducing-mongoqb/">MongoQB library</a>:
</p>
<blockquote>
A few years ago I released a <a href="https://github.com/alexbilbie/codeigniter-mongodb-library">MongoDB library</a> for the <a href="http://codeigniter.com/">CodeIgniter</a> PHP framework which has become quite popular thanks to it's likeness to CodeIgniter's query builder library. I've just spent the last week travelling and to keep myself occupied I spent some time re-architecting the library's code; removing the framework dependancy, making it <a href="http://getcomposer.org/">Composer</a> friendly and adding a full suite of unit tests. Check out the code on Github - <a href="https://github.com/alexbilbie/MongoQB">https://github.com/alexbilbie/MongoQB</a>.
</blockquote>
<p>
The library makes it simpler to do most of the usual CRUD (Create, Read, Update, Delete) operations with your Mongo data. Example code is included in the post. This is a nice lightweight alternative to things like the <a href="http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html">Doctrine query builder</a>.
</p>]]></description>
      <pubDate>Fri, 16 Nov 2012 09:38:38 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Giorgio Sironi's Blog: Refactoring PHPUnit's getMock()]]></title>
      <guid>http://www.phpdeveloper.org/news/14988</guid>
      <link>http://www.phpdeveloper.org/news/14988</link>
      <description><![CDATA[<p>
<i>Giorgio Sironi</i> has <a href="http://giorgiosironi.blogspot.com/2010/08/refactoring-phpunit-getmock.html">a new post</a> to his blog about a "refactoring" he's done of <a href="http://phpunit.de">PHPUnit</a>'s mock objects to make their creation with getMock easier.
</p>
<blockquote>
Not an actual refactoring, but at least the introduction of a layer of indirection, a Parameter object, called PHPUnit_Framework_MockSpecification. I have already written the patch in a branch of my github repository. They are actually two independent patches, since PHPUnit core and the mocking component are in two separate repositories. 
</blockquote>
<p>
If you create a basic object, the creation is simple, but when you start wanting to use one of the other optional parameters down the line, things can get messy. His solution adds methods like disableOriginalConstructor and disableAutoload to make this simpler. You can find the patches <a href="http://github.com/giorgiosironi/phpunit/commit/c7d62874ff9c1ed6f520e98cab2568c9bb933ec6">on his github account</a>.
</p>
<p>
UPDATE: This feature <a href="http://giorgiosironi.blogspot.com/2010/08/phpunit-mockbuilder-in-master-branch.html">has been included</a> in the latest PHPUnit master branch.
</p>]]></description>
      <pubDate>Thu, 19 Aug 2010 10:49:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Giorgio Sironi's Blog: Practical PHP Patterns]]></title>
      <guid>http://www.phpdeveloper.org/news/13814</guid>
      <link>http://www.phpdeveloper.org/news/13814</link>
      <description><![CDATA[<p>
Starting off a new series on his blog <i>Giorgio Sironi</i> has posted <a href="http://giorgiosironi.blogspot.com/2010/01/practical-php-patterns-abstract-factory.html">two</a> <a href="http://giorgiosironi.blogspot.com/2010/01/practical-php-patterns-builder.html">new</a> tutorials</a> looking at PHP design patterns - specifically the Abstract Factory and Builder patterns.
</p>
<blockquote>
[This series will] touch the majority of the known design patterns, with a special look at their application in a php context. A running code sample will be provided for each part of this series, along with the theory and the terminology of each pattern.
</blockquote>
<p>
In the <a href="http://giorgiosironi.blogspot.com/2010/01/practical-php-patterns-abstract-factory.html">Abstract Factory</a> (or just Factory) post he includes a <a href="http://yuml.me/diagram/scruffy/class/%5BClient%5D-%3E%5BAbstractFactory%5D,%20%5BClient%5Duses-.-%3E%5BAbstractProduct%5D,%20%5BAbstractFactory%5Dcreates-.-%3E%5BAbstractProduct%5D,%20%5BConcreteFactory%5Dcreates-.-%3E%5BConcreteProduct%5D,%20%5BAbstractFactory%5D%5E-%5BConcreteFactory%5D,%20%5BAbstractProduct%5D%5E-%5BConcreteProduct%5D">diagram</a> of the pattern's relationship with other "participants" and has a Zend Framework-based code sample to create a simple WidgetHelper. In the <a href="http://giorgiosironi.blogspot.com/2010/01/practical-php-patterns-builder.html">second article</a> he looks at the Builder pattern and how it can make creating instances of complex objects a bit easier. As before a <a href="http://yuml.me/diagram/scruffy/class/%5BDirector%5D-%3E%5BBuilder%5D,%20%5BBuilder%5D%5E-%5BConcreteBuilder%5D,%20%5BConcreteBuilder%5Dcreates-.-%3E%5BProduct%5D">diagram</a> and code are included.
</p>
<p>
You can keep up with the rest of the posts in the series as they're added by following along <a href="http://giorgiosironi.blogspot.com/search/label/practical%20php%20patterns">here</a>.
</p>]]></description>
      <pubDate>Mon, 11 Jan 2010 11:11:48 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: PHP and Adobe Air: Building a Time-tracking and Billing Application - Part II]]></title>
      <guid>http://www.phpdeveloper.org/news/12287</guid>
      <link>http://www.phpdeveloper.org/news/12287</link>
      <description><![CDATA[<p>
PHPBuilder.com has posted the <a href="http://www.phpbuilder.com/columns/bates/richard_bates040609.php3">second part</a> of their series on creating a sample application - a time tracking app - with PHP and Adobe Air.
</p>
<blockquote>
Welcome back. In part 1 of this series, you created some PHP remote services and the Clocked! widget application. Part 2 covers PHP administration and completion of the timer widget.
</blockquote>
<p>
They're developing a Flex-based application (rather than the HTML/Javascript combo that can also be used with Air) so they'll be doing their work in Flex Builder. They set up a few placeholder functions like getClients, getProjects and getProjectsResult as well as support for the ticket and timer objects. Add in a few interface items like dropdowns for client and project selection and a start/stop button and you have the basic app laid out. The PHP interface to all of this Flex code comes in the next article of the series.
</p>]]></description>
      <pubDate>Tue, 07 Apr 2009 07:54:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: Using a builder to construct complex classes]]></title>
      <guid>http://www.phpdeveloper.org/news/12266</guid>
      <link>http://www.phpdeveloper.org/news/12266</link>
      <description><![CDATA[<p>
If your code is getting more and more complex all the time and you find yourself creating a similar group of objects over and over, you might check out <a href="http://codeutopia.net/blog/2009/04/01/using-a-builder-to-construct-complex-classes/">Jani Hartikainen's latest advice</a> and create a "builder" around them.
</p>
<blockquote>
Sometimes if you have a complex class, which needs to be set up in a specific way: Perhaps it takes a lot of constructor arguments, or often requires calling some setters. [...] Sometimes if you have a complex class, which needs to be set up in a specific way: Perhaps it takes a lot of constructor arguments, or often requires calling some setters.
</blockquote>
<p>
His example is a "message builder" wrapper that lets you specify the receiver, sender and message and inject them into a to() method call (with a fluent interface). He shows how to make sure that the object you need (the message object) is always complete.
</p>]]></description>
      <pubDate>Thu, 02 Apr 2009 12:58:28 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP-GTK Community Site: Three New Posts - Two on Software, One on Web Services]]></title>
      <guid>http://www.phpdeveloper.org/news/7751</guid>
      <link>http://www.phpdeveloper.org/news/7751</link>
      <description><![CDATA[<p>
The PHP-GTK Community website has three new posts today - two concerning pieces of PHP-GTK software and one with news about the new RPC services the website offers.
</p>
<p>
First off is a <a href="http://www.php-gtk.eu/apps/emucontrolcenter">look at</a> the emuControlCenter software (version 0.9), a rom-manager for console and computer games:
</p>
<blockquote>
emuControlCenter (ecc) is a rom-manager for retro and new console/computer games. ecc is build for people who want's to play retro games quick 'n' easy, without searching to much, ECC supports images and previews them directy in the 'Resultview'. Also there is a 'ImageCenter' build-in for a fullsize preview!
</blockquote>
<p>
Next up is the <a href="http://www.php-gtk.eu/apps/php-gtk-builder">PHP_Gtk Builder</a. software, a simple RAD tool to help make the creation of light PHP-GTK simple. See <a href="http://www.php-gtk.eu/apps/php-gtk-builder">this site</a> for more information.
</p>
<p> 
Finally, there's some information posted about <a href="http://www.php-gtk.eu/new_rpc_docs">the new web service</a> offered by the site:
</p>
<blockquote>
Starting today, the community site exposes a new XML-RPC service offering access to its daily statistics, in addition to the existing geo_nick API.
</blockquote>
<p>
They include the list of information pages on getting started and using the API (like the <a href="http://www.php-gtk.eu/site/rpc/access_stats">access_stats API</a> and <a href="http://www.php-gtk.eu/site/geo-nick">a tutorial</a> on getting started with PHP-GTK and the geo_nick service).
</p>]]></description>
      <pubDate>Wed, 02 May 2007 07:39:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Edin Kadribasic's Blog: New Windows Snaps/Release Builder]]></title>
      <guid>http://www.phpdeveloper.org/news/7458</guid>
      <link>http://www.phpdeveloper.org/news/7458</link>
      <description><![CDATA[<p>
<i>Edin Kadribasic</i> shares some <a href="http://edin.dk/archives/33-New-Windows-SnapsRelease-Builder.html">great news</a> on his blog this morning those using the PHP Windows builds will be happy to hear.
</p>
<blockquote>
<p>
During my time at Emini I was using an old beat up machine to build <a href="http://snaps.php.net/">PHP snapshots</a> for Windows. It was only a Pentium II 400MHz and compiling a PHP snapshot on that machine took more than an hour. After <a href="http://edin.dk/archives/30-Leaving-Emini.html">leaving</a> Emini I needed to find a new box for compiling PHP snapshots and <a href="http://pecl4win.php.net/">PECL extensions</a> for the Windows platform.
</p>
</blockquote>
The light at the end of the tunnel came when <a href="http://netevil.org/">Wez Furlong</a> reminded him about a box <a href="http://www.omniti.com/">OmniTI</a> had that could handle just that. Now, what used to take over an hour to run takes around six minutes (a full compile of the latest snapshot with all of the extensions, including checkout and upload of the Win32 snapshot).
</p>]]></description>
      <pubDate>Tue, 20 Mar 2007 08:18:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Developing a Form Director Class]]></title>
      <guid>http://www.phpdeveloper.org/news/6528</guid>
      <link>http://www.phpdeveloper.org/news/6528</link>
      <description><![CDATA[<p>
DevShed is continuing on with their look at using Builder objects (<a href="http://www.phpdeveloper.org/news/6421">part 1</a>, <a href="http://www.phpdeveloper.org/news/6481">part 2</a>) with the third and final part of the series - <a href="http://www.devshed.com/c/a/PHP/Developing-a-Form-Director-Class/">
Developing a Form Director Class</a>.
</p>
<blockquote>
In this article I'll complete the builder pattern, since I'll demonstrate how to define and use a form director class, in this way putting the final strokes on the example that you learned in the previous tutorial.
</blockquote>
<p>
The tutorial goes back over a few of the concepts and code from the previous part of the series before getting into the form generation with these handy objects. They also show the FormBuilder class (creative name, eh?) that will generate the form's elements as created previously. They wrap it all up with the only new functionality - the Builder object Director class, creating a simple contact form. 
</p>]]></description>
      <pubDate>Wed, 18 Oct 2006 15:13: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[DevShed: Introducing Builder Objects in PHP 5]]></title>
      <guid>http://www.phpdeveloper.org/news/6421</guid>
      <link>http://www.phpdeveloper.org/news/6421</link>
      <description><![CDATA[<p>
DevShed kicks off another three-parts series today with <a href="http://www.devshed.com/c/a/PHP/Introducing-Builder-Objects-in-PHP-5/">part one</a> of a look at working with builder objects in PHP5.
</p>
<blockquote>
<p>
In this article, the first of a three-part series, you will be introduced to the basics of creating directors and builder objects with PHP 5. As usual, there will be copious examples to help you quickly start using the builder pattern in your own PHP projects.
</p>
<p>
Well, to put things in a simple perspective, when the builder pattern is applied, two objects are put into action to create a third one. First, these two objects create a director; as its name suggests, the director controls all aspects of the creation process and determines what pieces and modifications will be introduced into the target object. Finally, a builder is tasked with constructing the third object in question, in accordance with particular specifications. Sounds fairly simple, doesn't it?
</p>
</blockquote>
<p>
They <a href="http://www.devshed.com/c/a/PHP/Introducing-Builder-Objects-in-PHP-5/">start with</a> a look at starting with the Builder pattern, building a basic XML document to provide the structure for the target object. From that information, they show how to create the object and give a simple class to help direct that object along.
</p>]]></description>
      <pubDate>Wed, 04 Oct 2006 15:03:57 -0500</pubDate>
    </item>
  </channel>
</rss>
