<?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>Sun, 12 Feb 2012 20:01:15 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Ade Slade's Blog: Integrating Zend Framework 1 and Pimple]]></title>
      <guid>http://www.phpdeveloper.org/news/17414</guid>
      <link>http://www.phpdeveloper.org/news/17414</link>
      <description><![CDATA[<p>
In <a href="http://adeslade.co.uk/post/integrating-zend-framework-1-and-pimple">this new post</a> to his blog <i>Ade Slade</i> shows how to integrate the <a href="http://pimple.sensiolabs.org/">Pimple</a> lightweight dependency injection container with a Zend Framework application.
</p>
<blockquote>
This post will describe a way to integrate Zend Framework 1 and <a href="http://pimple.sensiolabs.org/">Pimple</a>. A complete working version of the code is available on <a href="https://github.com/adeslade/Zend-Framework-Pimple">github</a>. Thankfully, Zend Framework 2 features its own Dependency Injection Container. Happy days. Still, if you're not prepared to wait, you may find this useful.
</blockquote>
<p>
He shows how to add a resource plugin into the Pimple container - an entity manager that's part of <a href="http://doctrine-project.org">Doctrine</a>. He creates his controller, pulling the manager from the Pimple container and includes a unit test for the controller too (using PHPUnit, but he also suggests <a href="https://github.com/padraic/mockery">Mockery</a>).
</p>]]></description>
      <pubDate>Wed, 18 Jan 2012 13:11:56 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Devshed: Building a PHP ORM: Deploying a Blog]]></title>
      <guid>http://www.phpdeveloper.org/news/17237</guid>
      <link>http://www.phpdeveloper.org/news/17237</link>
      <description><![CDATA[<p>
DevShed concludes their three-part series about building an ORM in PHP with <a href="http://www.devshed.com/c/a/MySQL/Building-a-PHP-ORM-Deploying-a-Blog/">this latest article</a>. It introduces the idea of dependency injection into the mix, showing how it can be used in the relationships between entities.
</p>
<blockquote>
if you've already read the two installments that precede this one, it's probable that you're familiar with the inner workings of this sample ORM. In those chapters I implemented the ORM's data access and mapping layers, along with a simple domain model. To be frank, the development of this last tier is entirely optional; however, it's useful for demonstrating the ORM's actual functionality in the deployment of a blog program, which naturally will handle some "typical" domain objects, namely blog entries, comments and authors.
</blockquote>
<p>
They share the code for creating proxy objects and, using a "poor man's dependency injection container" made from a factory method, interfaces and service classes to handle the results.
</p>]]></description>
      <pubDate>Fri, 09 Dec 2011 11:13:18 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[CloudSpring.com: Using the Rackspace PHP SDK]]></title>
      <guid>http://www.phpdeveloper.org/news/17137</guid>
      <link>http://www.phpdeveloper.org/news/17137</link>
      <description><![CDATA[<p>
On the CloudSpring site today there's the continuation of a <a href="http://http//cloudspring.com/rackspace-cloud-files/">previous article</a> about RackSpace's CloudFiles API. In <a href="http://cloudspring.com/using-the-rackspace-php-sdk/">this new post</a> they show how to use their <a href="https://github.com/rackspace/php-cloudfiles">PHP SDK</a> to connect to and use the CloudFiles service.
</p>
<blockquote>
Rackspace provides a Software Development Kit (SDK) for multiple programming languages. They store their PHP SDK on <a href="https://github.com/rackspace/php-cloudfiles">GitHub</a>. The PHP SDK requires PHP 5 with the following modules: cURL, FileInfo and mbstring. In this tutorial we are going to review use of the PHP SDK with CloudFiles. Not all parts of the API will be covered but you will get a great start.
</blockquote>
<p>
Code is included showing how to make the connection, work with containers, pushing content out to a CDN, object handling and a few other handy tips (and API info) to help you along your way.
</p>]]></description>
      <pubDate>Wed, 16 Nov 2011 12:10:38 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lars Strojny's Blog: Dependency Injection Container Refactorings, Part Two]]></title>
      <guid>http://www.phpdeveloper.org/news/16318</guid>
      <link>http://www.phpdeveloper.org/news/16318</link>
      <description><![CDATA[<p>
<i>Lars Strojny</i> has posted the <a href="http://usrportage.de/archives/928-Dependency-Injection-Container-Refactorings,-Part-Two.html">second part</a> of his look at dependency injection and the refactoring it makes possible. If you'd like to start from the beginning, you can read about <a href="http://phpdeveloper.org/news/16223">part one here</a>.
</p>
<p>
He breaks it up into two sections (really three, but he advises to ignore the third):
</p>
<ul>Introducing a parameter in to the dependency injection container's configuration
<li>Setting it up to allow for checks against the environment (development, production, etc) 
<li>
</ul>
<p>
Code samples and example XML configurations are included for both points to help make them clearer.
</p>]]></description>
      <pubDate>Tue, 10 May 2011 09:24:53 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lars Strojny's Blog: Dependency Injection Container Refactorings, Part One]]></title>
      <guid>http://www.phpdeveloper.org/news/16223</guid>
      <link>http://www.phpdeveloper.org/news/16223</link>
      <description><![CDATA[<p>
New on his blog today <i>Lars Strojny</i> has posted the <a href="http://usrportage.de/archives/926-Dependency-Injection-Container-Refactorings,-Part-One.html">first part of his look at dependency injection</a> and how he's been using it to do some refactoring in his applications. He uses the Symfony DI container in his examples, but really you can apply the principles to just about any of the other current DI offerings.
</p>
<blockquote>
Working heavily with the Symfony2 Dependency Injection Container, I feel that we found some typical refactorings towards a DI container that emerge during the introduction of such a component. I want to write down the preliminary results of trying to systematize more or less as a draft. I will use the Symfony2 DI container configuration as an example but most of the refactorings should be applicable to other containers as well, some of them even to dependency injection without a container.
</blockquote>
<p>He's broken it up into a few different sections:</p>
<ul>
<li>Making a dependency explicit
<li>Introducing interface injection
<li>Exposing the service
</ul>]]></description>
      <pubDate>Wed, 20 Apr 2011 10:27:12 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Quick Start Symfony DI (Dependency Injection) Tutorial]]></title>
      <guid>http://www.phpdeveloper.org/news/15043</guid>
      <link>http://www.phpdeveloper.org/news/15043</link>
      <description><![CDATA[<p>
On the Zend Developer Zone there's <a href="http://devzone.zend.com/article/12472-Quick-Start-Symfony-DI-Dependency-Injection-Tutorial">a recent post</a> from <i>Steven Lloyd Watkin</i> giving you a quick start to a technique becoming more popular in the PHP development community - dependency injection.
</p>
<blockquote>
Dependency injection is a technique that allows for loosely coupled objects within a software application. Generally if an object requires access to the functionality of another it would be instantiated internally leading to tightly coupled systems. By implementing dependency injection we inject the required objects ready for use (sometimes also referred to inversion of control - IOC). 
</blockquote>
<p>
He illustrates with an example showing the injection of DecisionParameters into a DecisionMaker object (rather than just passing the parameters in manually). He looks at frameworks and how it's handled there, specifically with the Symfony DI container. He includes example code of how to use it, configure it, pull information back out and, of course, how it can help in unit testing your code.
</p>]]></description>
      <pubDate>Mon, 30 Aug 2010 12:59:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Benjamin Eberlei's Blog: Using a Dependency Injection Container with Zend_Application]]></title>
      <guid>http://www.phpdeveloper.org/news/12701</guid>
      <link>http://www.phpdeveloper.org/news/12701</link>
      <description><![CDATA[<p>
New on his blog today <i>Benjamin Eberlei</i> has posted <a href="http://www.whitewashing.de/blog/articles/117">his own look</a> at dependency injection containers in PHP applications, specifically with the Zend_Application component of the <a href="http://framework.zend.com">Zend Framework</a>.
</p>
<blockquote>
Much has been written on Dependency Injection lately [...]. Its an awesome pattern if used on a larger scale and can (re-) wire a complex business application according to a clients needs without having to change much of the domain code. Beginning with version 1.8 Zend Framework is able to integrate any of these DI containers into its Zend_Application component easily.
</blockquote>
<p>
He gives an example of this integration, adding in the creation of the container as a part of the bootstrap setup (a getContainer call on the front controller object). He also introduces the <a href="http://github.com/beberlei/yadif/tree/master">Yadif</a> DI container (a lightweight container written by <i>Thomas McKelvey</i>) and how to set it up including its own configuration file. 
</p>]]></description>
      <pubDate>Wed, 17 Jun 2009 10:25:17 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Fabien Potencier's Blog: Pimple, the small dependency injection container for PHP 5.3]]></title>
      <guid>http://www.phpdeveloper.org/news/12693</guid>
      <link>http://www.phpdeveloper.org/news/12693</link>
      <description><![CDATA[<p>
<i>Fabien Potencier</i> has <a href="http://fabien.potencier.org/article/29/pimple-the-small-dependency-injection-container-for-php-5-3">blogged about a tool</a> he's created, a small dependency injection container for PHP 5.3 he mentioned previously - <a href="http://github.com/fabpot/Pimple">Pimple</a>.
</p>
<blockquote>
Some people emailed me about a blog <a href="http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures">post</a> I wrote some time ago about a dependency injection container done in PHP 5.3. I have published on <a href="http://github.com/fabpot/twittee">Github</a> the small version of it (<a href="http://twittee.org/">Twittee</a>), but not the "working" version.
</blockquote>
<p>
So, he's updated the <a href="http://github.com/fabpot/Pimple">Pimple</a> source on Github with the latest and greatest for you to grab and use as you see fit. Remember, it does require PHP 5.3 (currently not released), so you couldn't (shouldn't!) use it in production yet.
</p>]]></description>
      <pubDate>Tue, 16 Jun 2009 09:35:54 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[SitePoint PHP Blog: Introducing Bucket: A Minimal Dependency Injection Container for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/12486</guid>
      <link>http://www.phpdeveloper.org/news/12486</link>
      <description><![CDATA[<p>
On the SitePoint PHP blog <i>Troels Knak-Nielsen</i> has <a href="http://www.sitepoint.com/blogs/2009/05/11/bucket-is-a-minimal-dependency-injection-container-for-php/">posted about</a> a new tool he's whipped up to handle dependency injections - <a href="http://github.com/troelskn/bucket/tree/master">Bucket</a>.
</p>
<blockquote>
I got fed up with the lack of a decent DI-container for PHP, so today I created <a href="http://github.com/troelskn/bucket/tree/master">Bucket</a>. To be clear, what I think is wrong with the currently available containers (at least that I'm aware of) is that they either are unstable, abandoned, require a lot of up-front configuration in external XML-files, or are tightly integrated into some full-stack framework. I had my hopes up for <a href="http://phemto.sourceforge.net/">Phemto</a> for a while, but it seems that progress has stalled.
</blockquote>
<p>
He includes a few bits of examples code <a href="http://www.sitepoint.com/blogs/2009/05/11/bucket-is-a-minimal-dependency-injection-container-for-php/">in the post</a> showing how to use type hinting, the factory method, callbacks and its support for child scopes. If you'd like to check it out for yourself, you can <a href="http://github.com/troelskn/bucket/tree/master">clone it from github</a>.
</p>]]></description>
      <pubDate>Mon, 11 May 2009 07:58:04 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Fabien Potencier's Blog: On PHP 5.3, Lambda Functions, and Closures]]></title>
      <guid>http://www.phpdeveloper.org/news/12363</guid>
      <link>http://www.phpdeveloper.org/news/12363</link>
      <description><![CDATA[<p>
In <a href="http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures">this new post</a> to his blog <i>Fabien Potencier</i> looks at two of the much-hyped features of the upcoming PHP 5.x series release (5.3) - closures and lambda functions.
</p>
<blockquote>
I won't talk too much about what lambda functions or closures are, as you can find many good blog posts describing them in great details. To sum up, a lambda function is an anonymous PHP function that can be stored in a variable and passed as an argument to other functions or methods. A closure is a lambda function that is aware of its surrounding context.
</blockquote>
<p>
He includes several examples including how they would work with a few of the array functions, an implementation of the Y-combinator method (as written by <a href="http://php100.wordpress.com/2009/04/13/php-y-combinator/">Stanislav Malyshev</a>) and how they can be used to create dependency injection functionality.
</p>]]></description>
      <pubDate>Fri, 17 Apr 2009 10:29:43 -0500</pubDate>
    </item>
  </channel>
</rss>

