<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>From the Code Mill &#187; PHP</title>
	<atom:link href="http://codemill.studio-connect.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://codemill.studio-connect.com</link>
	<description>Tutorials, thoughts, and rants about programming.</description>
	<lastBuildDate>Sat, 12 Jun 2010 18:45:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Implementing the Observer Pattern with SplObserver and SplSubject</title>
		<link>http://codemill.studio-connect.com/2010/06/06/implementing-the-observer-pattern-with-splobserver-and-splsubject/</link>
		<comments>http://codemill.studio-connect.com/2010/06/06/implementing-the-observer-pattern-with-splobserver-and-splsubject/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 06:03:34 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[object-oriented programming]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=240</guid>
		<description><![CDATA[As PHP applications grow into complex object-oriented systems, developers look to create centralized components to execute repetitive tasks.  These include logging, emailing, redirects, and more.  The Observer pattern is a commonly used design pattern to hook such components into an application during runtime, thereby making them reusable.  Since PHP 5.1, there are two interfaces built [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2010/06/06/implementing-the-observer-pattern-with-splobserver-and-splsubject/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Our Wheels Are Rounder</title>
		<link>http://codemill.studio-connect.com/2010/05/17/our-wheels-are-rounder/</link>
		<comments>http://codemill.studio-connect.com/2010/05/17/our-wheels-are-rounder/#comments</comments>
		<pubDate>Tue, 18 May 2010 00:59:42 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[best practices]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=214</guid>
		<description><![CDATA[As web developers we are familiar with the DRY (Don&#8217;t Repeat Yourself) principle of programming.  Cut &#38; paste is the bane of object-oriented programmers, and we will frequently hear the phrase &#8220;Don&#8217;t reinvent the wheel&#8221;.  However, I typically find myself and other colleagues in the world of PHP doing just that.  The plethora of actively [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2010/05/17/our-wheels-are-rounder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flexible Data Display with PDO and HTML_Table_Matrix</title>
		<link>http://codemill.studio-connect.com/2009/10/18/flexible-data-display-with-pdo-and-html_table_matrix/</link>
		<comments>http://codemill.studio-connect.com/2009/10/18/flexible-data-display-with-pdo-and-html_table_matrix/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 04:05:25 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=194</guid>
		<description><![CDATA[Have you ever wanted to set up an application that displays tabular data, and wanted to use the same view for each query?  While PHP is excellent for writing small-footprint queries, its ability to be embedded in HTML leaves the creativity to the programmer to figure out a consistent display solution for tabular data.
We need [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/10/18/flexible-data-display-with-pdo-and-html_table_matrix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing a Cross-Domain Proxy in PHP</title>
		<link>http://codemill.studio-connect.com/2009/09/15/writing-a-cross-domain-proxy-in-php/</link>
		<comments>http://codemill.studio-connect.com/2009/09/15/writing-a-cross-domain-proxy-in-php/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 03:22:31 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=188</guid>
		<description><![CDATA[Today I encountered a problem that many developers will likely face while building a web application with Ajax, so I wanted to share my experience with it.
The Problem:
You create a web site with the goal of consuming content from the web.  This may be in the form of a geocoding service, or perhaps a lightbox [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/09/15/writing-a-cross-domain-proxy-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Page &#8211; Useful Scripts</title>
		<link>http://codemill.studio-connect.com/2009/08/15/new-page-useful-scripts/</link>
		<comments>http://codemill.studio-connect.com/2009/08/15/new-page-useful-scripts/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 17:48:02 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/2009/08/15/new-page-useful-scripts/</guid>
		<description><![CDATA[I have created a new page for featuring little snippets of code that I think others may find useful.  Its name, quite uncreative, is &#8220;Useful Scripts&#8221;.
http://codemill.studio-connect.com/useful-scripts/
The first function posted is for getting the difference between two dates.  This function takes two dates that are convertible to Unix timestamps using strtotime(), and will return [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/08/15/new-page-useful-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP and Javascript Combine with PHP.JS</title>
		<link>http://codemill.studio-connect.com/2009/07/10/php-js/</link>
		<comments>http://codemill.studio-connect.com/2009/07/10/php-js/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 04:23:24 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Product Highlights]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=172</guid>
		<description><![CDATA[I wanted to write a quick post about a library one of my co-workers stumbled upon this week.  It is called php.js and is a compilation of php functions ported to javascript.  That sounds pretty convenient!

There are two flavors of php.js &#8211; one contains just the compiled functions, and the other a namespaced version, capable [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/07/10/php-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working on a Propel Form Builder&#8230;</title>
		<link>http://codemill.studio-connect.com/2009/05/29/working-on-a-propel-form-builder/</link>
		<comments>http://codemill.studio-connect.com/2009/05/29/working-on-a-propel-form-builder/#comments</comments>
		<pubDate>Sat, 30 May 2009 04:53:51 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=166</guid>
		<description><![CDATA[Tonight I started working on a set of classes that will build forms for Propel objects.  While Propel already has implementations of PatForms and HTML_QuickForm, they are both not up-to-date in svn.  They both also require Creole for gathering metadata, and I am not at all interested in integrating another library into this project &#8211; [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/05/29/working-on-a-propel-form-builder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick PHP Debugging with FirePHP</title>
		<link>http://codemill.studio-connect.com/2009/05/26/quick-php-debugging-with-firephp/</link>
		<comments>http://codemill.studio-connect.com/2009/05/26/quick-php-debugging-with-firephp/#comments</comments>
		<pubDate>Wed, 27 May 2009 03:38:48 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[object-oriented programming]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=157</guid>
		<description><![CDATA[Recently when browsing past issues of php&#124;architect magazine, I came across mention of a Firefox add-on called FirePHP.  For those who have not heard of it, FirePHP is both a Firefox add-on and a PHP library used to send messages to the Firebug console.

Installation of FirePHP was simple enough &#8211; install the add-on either [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/05/26/quick-php-debugging-with-firephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Propelled!</title>
		<link>http://codemill.studio-connect.com/2009/03/30/get-propelled/</link>
		<comments>http://codemill.studio-connect.com/2009/03/30/get-propelled/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 03:38:17 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Product Highlights]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=131</guid>
		<description><![CDATA[About two years ago I read of an emerging ORM-solution called Propel.  Having just finished my first full readthrough of PHP 5 Object, Patterns, and Practice by Matt Zandstra, I was eager to research object relational mappers that differed from the one used in that book.  My experience was one of major disappointment.  After spending [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/03/30/get-propelled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Caching with Cache_Lite</title>
		<link>http://codemill.studio-connect.com/2009/03/02/application-caching-with-cache_lite/</link>
		<comments>http://codemill.studio-connect.com/2009/03/02/application-caching-with-cache_lite/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 03:49:58 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[site optimization]]></category>

		<guid isPermaLink="false">http://codemill.studio-connect.com/?p=95</guid>
		<description><![CDATA[When developing a web application using PHP, it is important to follow best practices for optimizing memory usage, database access, and file sizes.  All these thing taken into account for, you will likely still find parts of an application to be bulky, or you may find repeated data calls an unnecessary overhead.  When you need [...]]]></description>
		<wfw:commentRss>http://codemill.studio-connect.com/2009/03/02/application-caching-with-cache_lite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
