<?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; Object-Oriented Development</title>
	<atom:link href="http://www.brandonsavage.net/category/object-oriented-development/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>Interfaces Make Testing Easier</title>
		<link>http://www.brandonsavage.net/interfaces-make-testing-easier/</link>
		<comments>http://www.brandonsavage.net/interfaces-make-testing-easier/#comments</comments>
		<pubDate>Wed, 26 May 2010 11:00:54 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[interfaces]]></category>
		<category><![CDATA[object-oriented design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1308</guid>
		<description><![CDATA[I, along with others, have written on interfaces many times before but recently I had occasion to find a new thing about them that makes them really awesome. A few days ago I was tasked with implementing PHPUnit against a Zend Framework application. This application, like many others, makes use of Zend_Auth, and in doing [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/interfaces-make-testing-easier/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Revisiting: Why Every Developer Should Write Their Own Framework</title>
		<link>http://www.brandonsavage.net/revisiting-why-every-developer-should-write-their-own-framework/</link>
		<comments>http://www.brandonsavage.net/revisiting-why-every-developer-should-write-their-own-framework/#comments</comments>
		<pubDate>Mon, 24 May 2010 11:00:32 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[NIH]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1305</guid>
		<description><![CDATA[In November of 2009, I wrote about why developers should write their own frameworks. I pointed out at the time that often developing a framework forces developers to make the kinds of architectural choices that frameworks require, which helps them better understand the architectural choices in the most popular frameworks. I haven&#8217;t stopped believing in [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/revisiting-why-every-developer-should-write-their-own-framework/feed/</wfw:commentRss>
		<slash:comments>8</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>The Registry Pattern Reexamined</title>
		<link>http://www.brandonsavage.net/the-registry-pattern-reexamined/</link>
		<comments>http://www.brandonsavage.net/the-registry-pattern-reexamined/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 11:00:37 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[object oriented programming]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[registry pattern]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1221</guid>
		<description><![CDATA[Last July, I wrote about the registry pattern and some of its advantages. These advantages include the ability to access objects across different areas of your application, and the storage of objects for later retrieval. Much of the debate in the comments focused on whether or not the registry pattern was suitable for today&#8217;s object-oriented [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/the-registry-pattern-reexamined/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Why Active Record Isn&#8217;t A Bad Design Pattern</title>
		<link>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/</link>
		<comments>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:00:38 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[design patterns]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1190</guid>
		<description><![CDATA[Were I writing this as an article for a newspaper, the subhead would be &#8220;Design Patterns Don&#8217;t Cause Application Slowness.&#8221; The point of this piece isn&#8217;t to defend Active Record per se; it&#8217;s to discuss the fact that design patterns aren&#8217;t to blame for your application&#8217;s problems, and more to the point, design patterns aren&#8217;t [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/feed/</wfw:commentRss>
		<slash:comments>9</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>Five (Good) Lessons The Government Teaches Us About Object-Oriented Programming</title>
		<link>http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/</link>
		<comments>http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 06:00:39 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1050</guid>
		<description><![CDATA[As Benjamin Franklin once famously said, &#8220;the only two things that are certain in life are death and taxes.&#8221; His point, while political, has a good perspective on one of life&#8217;s ever-persistent truths: the fact that governments exist in every country, and, largely, they have some of the same benefits and drawbacks everywhere. However, the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/five-good-lessons-the-government-teaches-us-about-object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>1</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>Q&amp;A: Answering Some Questions About Object-Oriented Programming</title>
		<link>http://www.brandonsavage.net/qa-answering-some-questions-about-object-oriented-programming/</link>
		<comments>http://www.brandonsavage.net/qa-answering-some-questions-about-object-oriented-programming/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 05:00:33 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[object-oriented]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP 5]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=963</guid>
		<description><![CDATA[Last week I wrote about five tips to improve object-oriented code. This generated a number of important questions, which I will attempt to answer for those who asked them. “Often times when a developer gives each object only one responsibility, they tightly couple objects together.” Can you explain? There are two major pitfalls in object-oriented [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/qa-answering-some-questions-about-object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>11</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.040 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 10:48:08 -->