<?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>Realm of Zod &#187; SQL</title>
	<atom:link href="http://blog.realmofzod.com/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.realmofzod.com</link>
	<description>Programming and Technology</description>
	<lastBuildDate>Wed, 09 Jun 2010 19:59:44 +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>Domain Model ORM Adapters</title>
		<link>http://blog.realmofzod.com/2009/11/24/domain-model-orm-adapters/</link>
		<comments>http://blog.realmofzod.com/2009/11/24/domain-model-orm-adapters/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 20:59:12 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Domain Model Programming]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=173</guid>
		<description><![CDATA[<!-- Easy AdSense V2.86 -->
<!-- Post[count: 1] -->
<div class="ezAdsense adsense adsense-leadin" style="text-align:center;margin:12px;"><script type="text/javascript"><!--
google_ad_client = "pub-6616898812779690";
/* 468x60, created 11/12/09 */
google_ad_slot = "0995711308";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<!-- Easy AdSense V2.86 -->

o I've had a series of articles that focus on domain model programming methodologies and most of my examples have demonstrated implementations using the <a href="http://www.doctrine-project.org/" target="_blank">Doctrine</a> ORM (Object Relational Mapper). Given the nature of domain model programming I've held to the assertion that models built using this method are truly ORM agnostic and it should be effortless to swap out Doctrine for the ORM of your choice. Well I like to put my money where my mouth is by showing how easily this has been done by showing off adapters that I have written, one for Doctrine, and the other for Zend_Db. The beauty of this system is that both support the same ORM agnostic query syntax demonstrated in my recent post about <a href="http://blog.realmofzod.com/2009/10/07/doctrine-complex-sql-queries-and-paginators/">creating complex sql queries using associative arrays</a>. This means that no modifications are necessary in the models, controllers or views when switching ORMs. Developer's utopia.
]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/2009/11/24/domain-model-orm-adapters/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Doctrine, Complex SQL Queries, and Paginators</title>
		<link>http://blog.realmofzod.com/2009/10/07/doctrine-complex-sql-queries-and-paginators/</link>
		<comments>http://blog.realmofzod.com/2009/10/07/doctrine-complex-sql-queries-and-paginators/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 00:45:46 +0000</pubDate>
		<dc:creator>brandon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Domain Model]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[Pagination]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.realmofzod.com/?p=146</guid>
		<description><![CDATA[<!-- Easy AdSense V2.86 -->
<!-- Post[count: 2] -->
<div class="ezAdsense adsense adsense-leadin" style="text-align:center;margin:12px;"><script type="text/javascript"><!--
google_ad_client = "pub-6616898812779690";
/* 468x60, created 11/12/09 */
google_ad_slot = "0995711308";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<!-- Easy AdSense V2.86 -->

<img class="alignleft size-medium wp-image-147" title="Mad_scientist_caricature_2" src="http://blog.realmofzod.com/wp-content/uploads/2009/10/Mad_scientist_caricature_2-300x280.png" alt="Mad_scientist_caricature_2" width="210" height="196" />In my efforts to build web applications using domain model programming I've encountered some interesting technical hurdles for keeping my implementation details away from my models. The most problematic issue that has come up time and time again has been that of using paginators. It's very difficult to keep your paginator class in the dark about database implementation details and have it be able to handle complex use cases. Over the last few months I have slowly evolved a sophisticated way to describe a complex sql query using nothing more than an associative array which can be passed to a clueless paginator which talks to the database through a predefined interface to a model gateway. Yeah the mad scientist is me because that's how I felt when I looked back on the pure genius of this method.]]></description>
		<wfw:commentRss>http://blog.realmofzod.com/2009/10/07/doctrine-complex-sql-queries-and-paginators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
