<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>BrandonSavage.net &#187; PHP 5</title>
	<atom:link href="http://www.brandonsavage.net/category/php-5/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonsavage.net</link>
	<description>The personal blog of Brandon Savage. Contains entries of a personal and professional nature focusing on PHP, Apple, LAMP, MySQL and Washington, DC.</description>
	<lastBuildDate>Wed, 28 Jul 2010 15:28:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>July Slides</title>
		<link>http://www.brandonsavage.net/july-slides/</link>
		<comments>http://www.brandonsavage.net/july-slides/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 15:28:37 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[micro-optimization]]></category>
		<category><![CDATA[object oriented programming]]></category>
		<category><![CDATA[object-oriented design]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1317</guid>
		<description><![CDATA[July was a month of talks and travel, including speaking at OSCON and user group talks to DCPHP and PDXPHP. For those who saw the &#8220;Micro Optimize This!&#8221; talk, you can download the slides here. For those looking for the &#8220;Five Tips To Make Good Object Oriented Code Better&#8221; slides, those are available here.]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/july-slides/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Closer Look At ArrayObject</title>
		<link>http://www.brandonsavage.net/a-closer-look-at-arrayobject/</link>
		<comments>http://www.brandonsavage.net/a-closer-look-at-arrayobject/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 11:00:08 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[ArrayObject]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SPL]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1284</guid>
		<description><![CDATA[Every once in a while I discover a really cool, really underutilized component in PHP and I just have to write about it. I recently discovered (through my use of Zend Framework) the implementation of the ArrayObject class. ArrayObject is an object that is designed to behave exactly like an array. If that seems confusing, [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/a-closer-look-at-arrayobject/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>A Lesson In Static Methods And Late Static Binding</title>
		<link>http://www.brandonsavage.net/a-lesson-in-static-methods-and-late-static-binding/</link>
		<comments>http://www.brandonsavage.net/a-lesson-in-static-methods-and-late-static-binding/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 11:00:57 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[late static binding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[singleton pattern]]></category>
		<category><![CDATA[static]]></category>
		<category><![CDATA[Zend_Auth]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1264</guid>
		<description><![CDATA[Until last week, I had never experienced what must have been incredibly frustrating to most developers: the fact that the self keyword in PHP refers to the class it is located in, and not necessarily a class that extends it. I personally ran into this problem when trying to extend Zend_Auth. Being a singleton, the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/a-lesson-in-static-methods-and-late-static-binding/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Upgrades In Open Source</title>
		<link>http://www.brandonsavage.net/upgrades-in-open-source/</link>
		<comments>http://www.brandonsavage.net/upgrades-in-open-source/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 06:00:19 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[php 5.3]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1181</guid>
		<description><![CDATA[PHP 5.3 has been out now for eight months, and in that time lots of projects have made decisions to begin developing against this version of PHP. Juozas Kaziukenas makes the argument that you shouldn&#8217;t be afraid of PHP 5.3 and he provides a number of excellent points to support his argument. I don&#8217;t dispute [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/upgrades-in-open-source/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cool DateTime Functions In PHP 5.3</title>
		<link>http://www.brandonsavage.net/cool-datetime-functions-in-php-5-3/</link>
		<comments>http://www.brandonsavage.net/cool-datetime-functions-in-php-5-3/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 06:00:04 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[date development]]></category>
		<category><![CDATA[date handling]]></category>
		<category><![CDATA[DateTime]]></category>
		<category><![CDATA[php 5.3]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[timezone]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1157</guid>
		<description><![CDATA[Over time, the PHP DateTime object has become one of the best objects available to PHP developers. This object has grown since early PHP 5 into a robust class that has the ability to do lots of great things. Recently, I was exploring some of the functionality provided by the DateTime object as of PHP [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/cool-datetime-functions-in-php-5-3/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Exceptional PHP: Nesting Exceptions In PHP</title>
		<link>http://www.brandonsavage.net/exceptional-php-nesting-exceptions-in-php/</link>
		<comments>http://www.brandonsavage.net/exceptional-php-nesting-exceptions-in-php/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 06:00:17 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[exceptions]]></category>
		<category><![CDATA[extending exceptions]]></category>
		<category><![CDATA[nested exceptions]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=995</guid>
		<description><![CDATA[In the last two entries we have talked about the concept of layer abstraction: that is, that exceptions should not be allowed to pass out of one layer and into another. So, when an exception is raised in the database layer it should be caught in the controller. But how do we go about making [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/exceptional-php-nesting-exceptions-in-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exceptional PHP: Extending The Base Exception Class</title>
		<link>http://www.brandonsavage.net/exceptional-php-extending-the-base-exception-class/</link>
		<comments>http://www.brandonsavage.net/exceptional-php-extending-the-base-exception-class/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 06:00:17 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[catching exceptions]]></category>
		<category><![CDATA[exception handling]]></category>
		<category><![CDATA[extending exceptions]]></category>
		<category><![CDATA[throwing exceptions]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=993</guid>
		<description><![CDATA[On Monday, we talked about the basics of exceptions and how they are used in PHP (as well as in other object-oriented programming languages). As promised, today we are going to talk about extending the base exception class in PHP. One of the things that you can (and should) do with PHP exceptions is extend [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/exceptional-php-extending-the-base-exception-class/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Exceptional PHP: Introduction to Exceptions</title>
		<link>http://www.brandonsavage.net/exceptional-php-introduction-to-exceptions/</link>
		<comments>http://www.brandonsavage.net/exceptional-php-introduction-to-exceptions/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 06:00:26 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[exception handling]]></category>
		<category><![CDATA[exceptions]]></category>
		<category><![CDATA[throwing exceptions]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=985</guid>
		<description><![CDATA[A great feature of PHP is the ability to throw and catch exceptions. This feature was introduced in PHP 5, and has been around for years in other languages like Python. Exceptions make it easy to interrupt program flow in the event that something goes wrong. They allow you to customize how a program handles [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/exceptional-php-introduction-to-exceptions/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<series:name><![CDATA[The Beginner Pattern]]></series:name>
	</item>
		<item>
		<title>Five Tips To Make Good Object-Oriented Code Better</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/</link>
		<comments>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 05:00:20 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[composition vs inheritance]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945</guid>
		<description><![CDATA[Last week, I did a talk at the Frederick Web meetup about tips and tricks for improving your object-oriented code. A lot of these tips were adapted from a fabulous presentation by Stefan Priebsch but the ideas are by no means original to him, and they&#8217;re exceptionally good ideas when you&#8217;re talking about object-oriented code. [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>What Interfaces Are For</title>
		<link>http://www.brandonsavage.net/what-interfaces-are-for/</link>
		<comments>http://www.brandonsavage.net/what-interfaces-are-for/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 05:00:32 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=854</guid>
		<description><![CDATA[A little while ago, I wrote an article discussing why interfaces rock and the way that interfaces work. However, a couple of comments made me realize that I didn&#8217;t discuss one of the key elements about interfaces: why you would use them. One key rule about interfaces is that all methods must be defined as [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/what-interfaces-are-for/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Accessing Databases with PDO: A Primer</title>
		<link>http://www.brandonsavage.net/pdo-primer/</link>
		<comments>http://www.brandonsavage.net/pdo-primer/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 05:00:50 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[PDO]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=753</guid>
		<description><![CDATA[With the introduction of PHP 5, the PHP Data Object was introduced as core functionality. PHP 5.1 turned on a minimum level of support for SQLite, by default, and PDO supports most of the major database engines. PDO offers a number of enhancements and improvements over the various database libraries (e.g. mysql_*, mysqli_*, pg_*), the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/pdo-primer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[The Beginner Pattern]]></series:name>
	</item>
		<item>
		<title>Configuring PHP: Essential INI Settings</title>
		<link>http://www.brandonsavage.net/essential-ini-settings/</link>
		<comments>http://www.brandonsavage.net/essential-ini-settings/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 05:00:38 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[General PHP]]></category>
		<category><![CDATA[PHP 5]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=769</guid>
		<description><![CDATA[When setting up a web server with PHP, there are a number of settings that are critical to consider. PHP 5.3 contains both a development INI file and a production INI file; however, users of older PHP releases (or those who don&#8217;t have direct control over their INI files) will want to pay attention and [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/essential-ini-settings/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<series:name><![CDATA[The Beginner Pattern]]></series:name>
	</item>
		<item>
		<title>Why Interfaces Rock</title>
		<link>http://www.brandonsavage.net/why-interfaces-rock/</link>
		<comments>http://www.brandonsavage.net/why-interfaces-rock/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 05:00:48 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=746</guid>
		<description><![CDATA[When I first learned PHP 5&#8242;s object oriented syntax and rules, I didn&#8217;t see much of a point to the interface options. I felt that I could do more by defining abstract classes and at least filling in some of the methods with some details. Lots of people in the PHP world still aren&#8217;t 100% [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-interfaces-rock/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Peer Review: You Have Not Because You Ask Not (Requests &amp; Responses)</title>
		<link>http://www.brandonsavage.net/peer-review-you-have-not-because-you-ask-not-requests-responses/</link>
		<comments>http://www.brandonsavage.net/peer-review-you-have-not-because-you-ask-not-requests-responses/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 05:00:12 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Peer Review]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=598</guid>
		<description><![CDATA[This entry is part of an ongoing series involving the review of a code sample and it&#8217;s refactoring. For the original code sample, see here. The topics discussed in this entry may be fairly advanced. Please feel free to ask questions, and discuss best practices. If you&#8217;ve been following this series from the beginning, take [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-you-have-not-because-you-ask-not-requests-responses/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>The Slow Death of PHP 4</title>
		<link>http://www.brandonsavage.net/the-slow-death-of-php-4/</link>
		<comments>http://www.brandonsavage.net/the-slow-death-of-php-4/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 05:00:59 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[PHP 4]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[unsupported software]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=718</guid>
		<description><![CDATA[Recently, I&#8217;ve been getting more and more into community-supplied code, since it&#8217;s generally been getting better. Namely, I&#8217;ve been exploring the PEAR offerings, and seeing what pieces I can integrate into my personal framework for development. One of these packages is the package called Log, which allows for easy logging of application events. So imagine [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/the-slow-death-of-php-4/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk (feed is rejected)
Page Caching using apc (user agent is rejected)
Database Caching 47/55 queries in 0.050 seconds using disk
Content Delivery Network via Amazon Web Services: S3: files.brandonsavage.net.s3.amazonaws.com

Served from: www.brandonsavage.net @ 2010-07-31 11:04:45 -->