<?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>Wed, 22 May 2013 18:55:01 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Explore Aspect Oriented Programming with CodeIgniter, Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/18377</guid>
      <link>http://www.phpdeveloper.org/news/18377</link>
      <description><![CDATA[<p>
In <a href="http://phpmaster.com/explore-aspect-oriented-programming-with-codeigniter-2/">this new post</a> to PHPMaster.com they continue their look at aspect-oriented programming with <a href="http://codeigniter.com">CodeIgniter</a>. In <a href="http://phpdeveloper.org/news/18346">part one</a> they introduced some of the fundamentals of AOP and in this new article, they dig deeper with more practical examples.
</p>
<blockquote>
In the previous part of this series we learned what Aspect Oriented Programming (AOP) is and the meaning of important AOP terminology. In this part I'll explain why we need AOP using practical examples and how to add AOP behavior to your PHP application using the CodeIgniter framework.
</blockquote>
<p>
They start with a look at a few pieces of functionality that could cut across multiple parts of the application like logging or authentication/authorization. They show how to use the "hooks" feature of CodeIgniter to implement the AOP proxy class generation, executing pre- and post-controller.
</p>]]></description>
      <pubDate>Mon, 20 Aug 2012 09:13:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Practical Testing Patterns - Redux]]></title>
      <guid>http://www.phpdeveloper.org/news/16420</guid>
      <link>http://www.phpdeveloper.org/news/16420</link>
      <description><![CDATA[<p>
A while back we <a href="http://phpdeveloper.org/news/15371">posted about</a> a series of articles <i>Giorgio Sironi</i> was doing about some of the more practical applications of testing patterns in PHP unit testing. He' been building on the series ever since and has lots of great patterns you can use to more correctly structure your testing practices.
</p>
<p>
The <a href="http://css.dzone.com/books/practical-php-testing-patterns">current list</a> includes:
</p>
<ul>
<li><a href="http://css.dzone.com/books/practical-php-testing/practical-php-testing-patterns-0">Test Strategy: Scripted Test</a>
<li><a href="http://css.dzone.com/books/practical-php-testing-patterns/practical-php-testing-patterns-4">Design for Testability: Dependency Injection</a>
<li><a href="http://css.dzone.com/books/practical-php-testing/practical-php-testing-patterns-19">Fixture Setup: Delegated Setup</a>
<li><a href="http://css.dzone.com/books/practical-php-testing/practical-php-testing-patterns-33">Fixture Teardown: Automated Teardown</a>
<li><a href="http://css.dzone.com/books/practical-php-testing/practical-php-testing-patterns-39">Test Double: Mock Object</a>
</ul>
<p>
There's lots more where these came from, all divided into sections like "Fixture Setup", "Test Double" and "Database Isolation" patterns. You can find the full list so far <a href="http://css.dzone.com/books/practical-php-testing-patterns">here</a>.
</p>]]></description>
      <pubDate>Thu, 02 Jun 2011 12:12:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Shameer's Blog: PHP 5.3 : Practical look into Lambda functions and closures]]></title>
      <guid>http://www.phpdeveloper.org/news/15658</guid>
      <link>http://www.phpdeveloper.org/news/15658</link>
      <description><![CDATA[<p>
For those out there still coming to grips with some of what PHP 5.3 has to offer, I'd suggest checking out <a href="http://shameerc.com/2010/12/php-53-practical-look-into-lambda.html">this new article</a> from <i>Shameer</i> about using lambdas and closures along with some examples putting them into action.
</p>
<blockquote>
PHP 5.3 packaged the power of functional programming by adding support for lambda functions and closures. You will be familiar with them in javascript. In this article we will have a look into these features and its usages.
</blockquote>
<p>
He starts with explanations of what they are with simple code examples showing their use - a lambda assigned to a variable and closures with the "use" keyword. He shows how they can be used in application prototyping, making handy callback functions and includes a practical example of finding the factorial of a number using a lambda.
</p>]]></description>
      <pubDate>Thu, 30 Dec 2010 11:11:26 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Vance Lucas' Blog: Practical Uses for PHP 5.3 Closures]]></title>
      <guid>http://www.phpdeveloper.org/news/15306</guid>
      <link>http://www.phpdeveloper.org/news/15306</link>
      <description><![CDATA[<p>
By now everyone's heard about one of the more powerful and major advancements made in the PHP 5.3.x series of the language - closures. You might have read a description of them and been left wondering what a practical application might be to help drive the point home. <i>Vance Lucas</i> has <a href="http://www.vancelucas.com/blog/practical-uses-for-php-5-3-closures/">written up a post</a> to help with just that.
</p>
<blockquote>
If you're like me, you might be wondering what the practical uses for these new features are before you can rightly justify diving in and using them in new or existing projects. I experimented a lot with closures and possible uses over the past few weeks, and came up with some compelling reasons to start using them.
</blockquote>
<p>
He's come up with five different examples of how you can use this handy feature:
</p>
<ul>
<li>Templating
<li>Dynamic Code Extension
<li>Delayed Execution
<li>Caching
<li>Convenience (as in their role in one-off functions for callbacks)
</ul>
<p>
Each of the tips comes with a bit of code (except delayed execution, that's a bit more involved) to help explain the point a bit more.
</p>]]></description>
      <pubDate>Wed, 20 Oct 2010 08:51:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Cormac' PHP Blog: Practical example php implementation of the Observer pattern]]></title>
      <guid>http://www.phpdeveloper.org/news/15278</guid>
      <link>http://www.phpdeveloper.org/news/15278</link>
      <description><![CDATA[<p>
New from <i>Cormac</i>'s blog <a href="http://cormacscode.wordpress.com/2010/10/12/practical-example-php-implementation-of-the-observer-pattern/">there's a post</a> looking at an implementation of the <a href="http://en.wikipedia.org/wiki/Observer_pattern">Observer</a> design pattern in a bit more practical scenario than some other examples out there.
</p>
<blockquote>
Observer is a pattern where an object called the subject maintains a list of dependents (observers) and notifies them of any state changes. I implemented this recently to log changes to an Account object, and to notify the account holder if their account had expire - here's the basics of the code, hopefully it'll help someone else figure out how the pattern works
</blockquote>
<p>
The basis of the Observer pattern is that you attach these "observer" objects to a main object. These watch the object and see if something changes (like a property value) and react accordingly. For their example, they create a setup that extends the main Observer class to have some or the detection functionality built-in.
</p>]]></description>
      <pubDate>Thu, 14 Oct 2010 08:36:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[php|architect: Programming: you're doing it wrong]]></title>
      <guid>http://www.phpdeveloper.org/news/14169</guid>
      <link>http://www.phpdeveloper.org/news/14169</link>
      <description><![CDATA[<p>
In an opinion piece posted to the php|architect site <i>Marco Tabini</i> suggests that we (as developers) are <a href="http://www.phparch.com/2010/03/10/programming-youre-doing-it-wrong/">doing it wrong</a> as we move further and further away from the pragmatic side of programming into the abstract.
</p>
<blockquote>
No matter how advanced the techniques that we use, there is always something that we could be doing better. [...] Which one is right? The real problem is that the answer to that question is, "yes." That's because it lacks a specific context in which it can be inserted.
</blockquote>
<p>
He suggests that, in our quest to figure out what the perfect case for any situation, we stop focusing on the practicality of writing applications to accomplish goals. Sometimes it's not about getting the right theory behind the code - sometimes it's just doing it.
</p>]]></description>
      <pubDate>Thu, 11 Mar 2010 11:06:42 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: A Practical Guide to Data Caching with Zend Server]]></title>
      <guid>http://www.phpdeveloper.org/news/12356</guid>
      <link>http://www.phpdeveloper.org/news/12356</link>
      <description><![CDATA[<p>
The Zend Developer Zone has <a href="http://devzone.zend.com/article/4457-A-Practical-Guide-to-Data-Caching-with-Zend-Server">pointed out</a> a new white paper (written up by <a href="http://prematureoptimization.org/">Shahar Evron</a> of Zend) about data caching with the <a href="http://www.zend.com/en/products/server/">Zend Server</a> product Zend offers.
</p>
<blockquote>
Did you know that Zend Server not only has it's own PHP accelerator built in (like APC). But that it also has similar functionality allowing for caching of data in shared memory? <a href="http://prematureoptimization.org/">Shahar Evron</a>, Project Manager of Zend Server, has written a white paper describing just how exactly to use this to good effect.
</blockquote>
<p>
Caching is one of the simplest ways to increase the speed of your application and Zend Server makes it simple with its included Optimizer+, Zend Page Cache and Data Cache API tools. For more information, you can <a href="http://static.zend.com/topics/Zend-Server-Data-Caching-Whitepaper-0106-T-WP-R1-EN.pdf">download the whitepaper here</a> [pdf].
</p>]]></description>
      <pubDate>Thu, 16 Apr 2009 10:26:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: Practical uses for reflection]]></title>
      <guid>http://www.phpdeveloper.org/news/11961</guid>
      <link>http://www.phpdeveloper.org/news/11961</link>
      <description><![CDATA[<p>
<a href="http://php.net/reflection">Reflection</a> can be a handy tool when you need it, but how many times have you actually found a use for it in the past few applications you've written? <i>Jani Hartikainen</i> has <a href="http://codeutopia.net/blog/2009/02/16/practical-uses-for-reflection/">one suggestion</a> of a place it can be used - form generation.
</p>
<blockquote>
Most web applications use forms. Forms often represent some model, such as a news post. If the model is simple, writing the form in HTML is not too bad, or we might be able to use a scaffolding feature in our framework. [...] Here's a good use for reflection! Since in models we often have a naming scheme for the data the users would be able to input, we can utilize this knowledge with reflection to generate a list of possible fields in the model, and then generate the form with less typing required from us.
</blockquote>
<p>
His example looks into the model class and pulls out the "get" functions and, after pulling out the name, adds it to a fields array. This array is then passed out to the display part of the script and looped over to create a text field for each. He expands it a bit to also include checking for "@return" values in docblock comments for the type of form field that should be displayed.
</p>]]></description>
      <pubDate>Tue, 17 Feb 2009 10:22:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Symfony Blog: Questions and Answers about "Practical symfony" book]]></title>
      <guid>http://www.phpdeveloper.org/news/11870</guid>
      <link>http://www.phpdeveloper.org/news/11870</link>
      <description><![CDATA[<p>
The symfony blog has <a href="http://www.symfony-project.org/blog/2009/02/02/questions-and-answers-about-practical-symfony-book">a few questions and answers</a> posted about their "Practical symfony" book for those inquiring minds out there.
</p>
<p>Questions include:</p>
<ul>
<li>Should I buy it? (who is it targeted towards)
<li>Will it get old too soon?
<li>Should I wait to the new edition of the book?
<li>Are the contents of the book full color or b&w?
<li>Should I buy the book or print The definitive guide to symfony 1.2?
</ul>
<p>
The book can be ordered in three versions - <a href="http://www.lulu.com/content/5724869">Propel (English)</a>, <a href="http://www.lulu.com/content/5784717">Doctrine (English)</a> and <a href="http://www.lulu.com/content/5794924">Propel (Spanish)</a>.
</p>]]></description>
      <pubDate>Tue, 03 Feb 2009 12:08:18 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Symfony Blog: The "Practical symfony" book is now on sale ]]></title>
      <guid>http://www.phpdeveloper.org/news/11775</guid>
      <link>http://www.phpdeveloper.org/news/11775</link>
      <description><![CDATA[<p>
On the Symfony blog today there's <a href="http://www.symfony-project.org/blog/2009/01/15/the-practical-symfony-book-is-now-on-sale">a new post</a> from <i>Fabien Potencier</i> about a new book that's just been released and might be of interest to those wanting to get into the framework - <a href="http://www.lulu.com/content/5724869">Practical Symfony</a>.
</p>
<blockquote>
Two years after the publishing of "The Definitive Guide to symfony" book, I am happy to announce that the <a href="http://www.symfony-project.org/jobeet/1_2/Propel/en/">Jobeet tutorial</a> is now available as a printed book: "<a href="http://www.lulu.com/content/5724869">Practical symfony</a>". During the last two weeks, I have updated and enhanced the Jobeet tutorial based on the feedback from the community. I have also updated the screenshots to reflect the new Jobeet design. The "Practical symfony" book is the printed version of this tutorial and as such covers the symfony 1.2 version.
</blockquote>
<p>
The <a href="http://www.phpdeveloper.org/news/11504">Jobeet tutorial</a> was their 2008 "advent" piece that created a job posting website from scratch with each day focusing on a different aspect of the application. There are two versions of the book (Propel and Doctrine) but for now, only the Propel version can be purchased over on <a href="http://www.lulu.com/content/5724869">lulu.com</a>.
</p>]]></description>
      <pubDate>Tue, 20 Jan 2009 12:07:08 -0600</pubDate>
    </item>
  </channel>
</rss>
