<?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, 07 Sep 2008 01:53:23 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Lorna Mitchell's Blog: PHP REST Server (Part 2 of 3)]]></title>
      <guid>http://www.phpdeveloper.org/news/10955</guid>
      <link>http://www.phpdeveloper.org/news/10955</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has posted the <a href="http://www.lornajane.net/posts/2008/PHP-Rest-Server-part-2-of-3">second part</a> of her series detailing her REST server development project (part one is <a href="http://www.phpdeveloper.org/news/10938">here</a>).
</p>
<blockquote>
This is part 2 of my rest service writing article. In <a href="http://www.lornajane.net/posts/2008/PHP-Rest-Server-part-1-of-3">part 1</a> we saw the library which holds the functionality we will be using, and we also handled the incoming request and captured all the data we'll be using.
</blockquote>
<p>
In this second part she gets into the details behind the handle() method of the class. It splits the URL into its parts and, based on the action requested, hands it off to the right method and calls the output() method to return to the user. Some error handling is also included (with custom exceptions).
</p>]]></description>
      <pubDate>Wed, 03 Sep 2008 12:04:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: Site design theme editor]]></title>
      <guid>http://www.phpdeveloper.org/news/10953</guid>
      <link>http://www.phpdeveloper.org/news/10953</link>
      <description><![CDATA[<p>
A while back the PHPClasses.org website announced that it would be <a href="http://www.phpdeveloper.org/news/10748">changing its look</a> a bit and allowing visitors to set up and configure their own look and feel as they chose. The editor to make these changes has <a href="http://www.phpclasses.org/blog/post/81-Site-design-theme-editor.html">finally been released</a> and is ready for use.
</p>
<blockquote>
The site is launching an editor that allows designs to propose new site design themes. This is the initial beta version of the site design editor, but it already allows any designer to try different presentation designs.
</blockquote>
<p>
You can access the editor <a href="http://www.phpclasses.org/design.html">from here</a> and it'll require a login to get in (to create your own custom layout). The system uses simple tag-based templating to wrap the content of the site in your look/feel of choice. You can even try it out on different sized resolutions to give you an idea of the template's flexibility.
</p>]]></description>
      <pubDate>Wed, 03 Sep 2008 10:28:24 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Debuggable Blog: Two CakePHP Tricks]]></title>
      <guid>http://www.phpdeveloper.org/news/10894</guid>
      <link>http://www.phpdeveloper.org/news/10894</link>
      <description><![CDATA[<p>
On the Debuggable blog <i>Felix</i> has <a href="http://feeds.feedburner.com/~r/thinkingphp/~3/373239376/4-cakephp-tricks:4811ad82-32dc-4a38-bc10-36304834cda3">posted two quick tips</a> you can use in your CakePHP application - one related to debugging and the other about custom config files.
</p>
<p>For tip #1</p>
<blockquote>
If you just put a debug() statement in, you will see hundreds of outputs and would not know which one belongs to the case you are interested in. My favorite solution to this problem is to use the Configure class as a toggle for showing the debug information.
</blockquote>
<p>For tip #2</p>
<blockquote>
This is a very simple one. To make your application configurable via a global config file, all you need to do is the following.
</blockquote>
<p>
Both come complete with <a href="http://feeds.feedburner.com/~r/thinkingphp/~3/373239376/4-cakephp-tricks:4811ad82-32dc-4a38-bc10-36304834cda3">code examples</a>.
</p>]]></description>
      <pubDate>Mon, 25 Aug 2008 15:58:03 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ibuildings Blog: Implementing Iterators]]></title>
      <guid>http://www.phpdeveloper.org/news/10870</guid>
      <link>http://www.phpdeveloper.org/news/10870</link>
      <description><![CDATA[<p>
On the Ibuildings blog <i>Ruud Alberts</i> <a href="http://www.ibuildings.com/blog/archives/1241-Implementing-Iterators.html">takes a look</a> at iterators - what they are and how they're used (including the objects the SPL makes available).
</p>
<blockquote>
Let's kickstart this blogpost by defining what an iterator actually is. According to wikipedia, an iterator is. A collection can pretty much be anything. The most obvious sources would be arrays, but other than that, iterations can be done over database resultsets, strings, datetime intervals, directories, file content and XML listings, to name a few.
</blockquote>
<p>
He looks at the iterator interface that comes bundled in the <a href="http://www.php.net/~helly/php/ext/spl/">SPL</a> and how you can create a custom one to loop through your own data collection. He includes an example - a colorful string iterator that "pretties up" an HTML string with various colors.
</p>]]></description>
      <pubDate>Wed, 20 Aug 2008 15:02:59 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Dhiraj Patra's Blog: Caching PHP Programs with PEAR]]></title>
      <guid>http://www.phpdeveloper.org/news/10785</guid>
      <link>http://www.phpdeveloper.org/news/10785</link>
      <description><![CDATA[<p>
In a recent post to his blog <i>Dhiraj Patra</i> looks at the <a href="http://dhirajpatra.blogspot.com/2008/08/caching-php-programs-with-pear.html">caching functionality</a> that PEAR has to offer via the <a href="ttp://pear.php.net/package/cache/">PEAR Cache</a> package.
</p>
<blockquote>
Caching is currently a hot topic in the PHP world. Because PHP produces dynamic web pages, scripts must be run and results must be calculated each time a web page is requested, regardless if the results are the same each time. In addition, PHP compiles the script every time it is requested. [...] PEAR's Cache package offers a framework for the caching of dynamic content, database queries, and PHP function calls.
</blockquote>
<p>
He talks a bit about what kind of methods are included with the package and shows examples of how it works for function call caching, caching the output from the script execution and how to implement your own custom caching extension of the main code to make it even more flexible.
</p>]]></description>
      <pubDate>Thu, 07 Aug 2008 12:58:09 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPImpact Blog: Zend Framework: Encapsulating routes into modules]]></title>
      <guid>http://www.phpdeveloper.org/news/10757</guid>
      <link>http://www.phpdeveloper.org/news/10757</link>
      <description><![CDATA[<p>
On the PHP::Impact blog, <i>Federico Cargnelutti</i> has <a href="http://phpimpact.wordpress.com/2008/08/03/zend-framework-encapsulating-routes-into-modules/">another helpful tip</a> to use in Zend Framework applications - encapsulating routes into modules.
</p>
<blockquote>
You can encapsulate routes into modules by <a href="http://phpimpact.wordpress.com/2008/07/15/improving-the-performance-of-zend_controller/">splitting the routes</a> into different files and extending the Zend_Controller_Router_Rewrite class. But, what if you want to use the <a href="http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.redirector">Redirector helper</a> to set a URL based on a registered route?
</blockquote>
<p>
His method creates the routing instance and overwrites the default getRoute method with a custom one in the extending class.
</p>]]></description>
      <pubDate>Mon, 04 Aug 2008 13:47:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Raphael Stolt's Blog: Creating custom PHPUnit assertions]]></title>
      <guid>http://www.phpdeveloper.org/news/10705</guid>
      <link>http://www.phpdeveloper.org/news/10705</link>
      <description><![CDATA[<p>
<i>Raphael Stolt</i> has <a href="http://raphaelstolt.blogspot.com/2008/07/creating-custom-phpunit-assertions.html">written up a post</a> for his blog talking about custom PHPUnit assertions and a simple method to create them.
</p>
<blockquote>
In this blog post I'd like to set the focus on some of the aspects of the <a href="http://xunitpatterns.com/Custom%20Assertion.html">Custom Assertion</a> pattern, by showing how to create custom <a href="http://www.phpunit.de/">PHPUnit</a> assertions, which attacks the above mentioned smell [of bad test code] and its retroactive effects with a huge antiperspirant flagon, while also providing the chance to build a customer friendly and domain related test vocabulary.
</blockquote>
<p>
His first assertion is simple, checking the contents of a bag object to be sure that there are no duplicate items and that its content count is reduced by one if something is removed. Then, he moves on to making the custom assertion for his "IdShouldFollowAgreedConvention" test. He explains how to use the assertion class and how it all fits together in the final, functional test case.
</p>]]></description>
      <pubDate>Tue, 29 Jul 2008 10:25:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Eran Galperin's Blog: Handling mail and mime in PHP using the Zend Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/10633</guid>
      <link>http://www.phpdeveloper.org/news/10633</link>
      <description><![CDATA[<p>
On the Techfounder blog (from <i>Eran Galperin</i>) there's a <a href="http://www.techfounder.net/2008/07/18/handling-mail-and-mime-in-php-using-the-zend-framework/">quick tutorial</a> about using the Zend_Mail component of the Zend Framework to send both normal, plain-text emails and ones with MIME attachments.
</p>
<blockquote>
Using PHP's built in function (aptly named <a href="http://www.php.net/mail">mail()</a> ) is relatively straightforward - until you need slightly more advanced features, such as adding and encoding email headers or sending multiple mails efficiently. Fortunately, the Zend Framework comes with a very capable mail component called <a href="http://framework.zend.com/manual/en/zend.mail.html">Zend_Mail</a>.
</blockquote>
<p>
He <a href="http://www.techfounder.net/2008/07/18/handling-mail-and-mime-in-php-using-the-zend-framework/">shows</a> how to send a simple email, do something a bit more complex with a custom SMTP server, read messages from a remote POP3 email box and how to attach a binary file/message.
</p>]]></description>
      <pubDate>Fri, 18 Jul 2008 08:47:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stefan Priebsch's Blog: Custom Coding Standards with PHP_CodeSniffer]]></title>
      <guid>http://www.phpdeveloper.org/news/10541</guid>
      <link>http://www.phpdeveloper.org/news/10541</link>
      <description><![CDATA[<p>
<i>Stefan Priebsch</i> <a href="http://inside.e-novative.de/archives/124-Custom-Coding-Standards-with-PHP_CodeSniffer.html">recently posted</a> about his struggles with creating a custom coding started with the <a href="http://inside.e-novative.de/exit.php?url_id=1295&entry_id=124">PHP_CodeSniffer</a> package:
</p>
<blockquote>
In CodeSniffer, a coding standard is basically represented by an empty class that extends PHP_CodeSniffer_Standards_CodingStandard. I could not get the CodeSniffer to find my coding standard, though, and found the documentation lacking about where to put it, how to name it, and how to refer to it in the --standard switch.
</blockquote>
<p>
After an email to <a href="http://inside.e-novative.de/exit.php?url_id=1298&entry_id=124">Greg Sherwood</a> (developer of the package</a>) <i>Stefan</i> figured out his issue and has <a href="http://inside.e-novative.de/archives/124-Custom-Coding-Standards-with-PHP_CodeSniffer.html">shared the solution</a> in this post (step by step).
</p>]]></description>
      <pubDate>Thu, 03 Jul 2008 12:02:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Vinu Thomas' Blog: MemProxy 0.1 - Memcache Proxy Server in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10483</guid>
      <link>http://www.phpdeveloper.org/news/10483</link>
      <description><![CDATA[<i>Vinu Thomas</i> <a href="http://blogs.vinuthomas.com/2008/06/25/memproxy-01-memcache-proxy-server-in-php/">points out</a> a new "server" project that's been created to aid in caching for your app - <a href="http://code.google.com/p/memproxy/">MemProxy</a>.
</p>
<blockquote>
A pretty cool project in PHP - Memproxy is a caching proxy "server" that uses memcached for storing the cache. This project uses PHP scripts to handle caching using memcache.
</blockquote>
<p>
The server uses memcached to store the information and automatically manages things like TTL, custom headers and is "application agnostic" all wrapped up in a small codebase with minimal dependencies.
</p>]]></description>
      <pubDate>Wed, 25 Jun 2008 11:13:27 -0500</pubDate>
    </item>
  </channel>
</rss>
