<?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>KILLERPHP.COM</title>
	<atom:link href="http://www.killerphp.com/articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.killerphp.com/articles</link>
	<description>Dedicated to teaching web designers PHP.</description>
	<lastBuildDate>Thu, 11 Mar 2010 21:46:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Video: MySQL and SQL Joins Part 2</title>
		<link>http://www.killerphp.com/articles/video-mysql-and-sql-joins-part-2/</link>
		<comments>http://www.killerphp.com/articles/video-mysql-and-sql-joins-part-2/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 21:45:29 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=598</guid>
		<description><![CDATA[
Hi,
We continue from where we left off in part 1 of our video on SQL joins. Still setting up things to do our SQL work, in this particular video, we continue to build our MySQL table. 
The video:

There will be several other sample videos to come, but if you want them all NOW, (at the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2009/12/031.png" alt="Database Image" title="Database Image" width="128" height="128" class="alignright size-full wp-image-471" style="float: right; margin: 10px;" /></p>
<p>Hi,</p>
<p>We continue from where we left off in part 1 of our <a href="http://www.killerphp.com/articles/new-video-mysql-and-sql-joins/">video on SQL joins</a>. Still setting up things to do our SQL work, in this particular video, we continue to build our MySQL table. </p>
<p>The video:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Pu0z4yuLVxE&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Pu0z4yuLVxE&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>There will be several other sample videos to come, but if you want them all NOW, (at the risk of being a shameless self promoter!) you can pick the entire 4hrs of the <a href="http://www.killervideostore.com/video-courses/mysql-sql-php.php">MySQL and SQL course</a> in the killer video store.</p>
<p>Thanks,</p>
<p>Stefan Mischook<br />
www.killerphp.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/video-mysql-and-sql-joins-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Video: MySQL and SQL Joins Part 1</title>
		<link>http://www.killerphp.com/articles/new-video-mysql-and-sql-joins-part-1/</link>
		<comments>http://www.killerphp.com/articles/new-video-mysql-and-sql-joins-part-1/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:50:36 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP Videos]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=587</guid>
		<description><![CDATA[
Hi,
I just released the first of many videos on more advanced SQL and MySQL than we&#8217;ve covered before.  From the courses description:
This course teaches you the very basics of MySQL, SQL then shows you how to use PHP with them. Once you have that under your belt, we jump into more advanced SQL and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2009/12/031.png" alt="Database Image" title="Database Image" width="128" height="128" class="alignright size-full wp-image-471" style="float: right; margin: 10px;" /></p>
<p>Hi,</p>
<p>I just released the first of many videos on more advanced SQL and MySQL than we&#8217;ve covered before.  From the courses description:</p>
<blockquote><p>This course teaches you the very basics of MySQL, SQL then shows you how to use PHP with them. Once you have that under your belt, we jump into more advanced SQL and MySQL.</p></blockquote>
<p>In this free sample video, we prepare our environment (MySQL) so we can start working with on SQL join queries:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Obv4_4c1zCk&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Obv4_4c1zCk&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>There will be several other sample videos to come, but if you want them all NOW, (at the risk of being a shameless self promoter!) you can pick the entire 4hrs of the <a href="http://www.killervideostore.com/video-courses/mysql-sql-php.php">MySQL and SQL course</a> in the killer video store.</p>
<p>Thanks,</p>
<p>Stefan Mischook<br />
www.killerphp.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/new-video-mysql-and-sql-joins-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Screencasts: Use PHP, jQuery &amp; AJAX to Load XML Data</title>
		<link>http://www.killerphp.com/articles/new-screencasts-use-php-jquery-ajax-to-load-xml-data/</link>
		<comments>http://www.killerphp.com/articles/new-screencasts-use-php-jquery-ajax-to-load-xml-data/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 16:21:29 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[PHP Videos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=570</guid>
		<description><![CDATA[
Hi,
I wanted to announce that we released a two part video screencast tutorial in our video tutorial subscription service on using PHP, jQuery and AJAX to load XML data.
&#8230; We built this script for our own sites, so that we could grab RSS feeds from our forums and display them on various home pages. 
Learn [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2010/03/Clapboard.png" alt="video-icon" title="video-icon" width="112" height="129" class="alignright size-full wp-image-571" /></p>
<p>Hi,</p>
<p>I wanted to announce that we released a two part video screencast tutorial in our <a href="http://www.killersites.com/university/">video tutorial subscription service</a> on using PHP, jQuery and AJAX to load XML data.</p>
<p>&#8230; We built this script for our own sites, so that we could grab RSS feeds from our forums and display them on various home pages. </p>
<p><strong>Learn not just one cool programming technique, but two, three or more!</strong></p>
<p>This is a cool video tutorial, because it shows you not only how to use jQuery, but you also get to see how to combine jQuery with PHP to do something pretty useful. </p>
<p>For example, with what you learn in this video tutorial, you could create a news aggregator page that grabs RSS feeds from your favorite news sites &#8230; no need to surf around.</p>
<p>The source files are included with the <a href="http://www.killersites.com/university/">video subscription service.</a> You can find it in the Misc. PHP videos section of the library. </p>
<p>I may post part 1 here within the next few days &#8211; still thinking about it.</p>
<p> <img src='http://www.killerphp.com/articles/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Stefan Mischook (Nerd supreme around here!)<br />
www.killerphp.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/new-screencasts-use-php-jquery-ajax-to-load-xml-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL video tutorials coming out.</title>
		<link>http://www.killerphp.com/articles/mysql-video-tutorials-coming-out/</link>
		<comments>http://www.killerphp.com/articles/mysql-video-tutorials-coming-out/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 15:01:22 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=566</guid>
		<description><![CDATA[
Hi,
I haven&#8217;t been working on killerphp for a little while because of work on other websites in the killersites network &#8230; OK, and other things too.
&#8230; Xbox can take up a lot of time!!
What&#8217;s news?
Well, we have a whole slew of advanced MySQL videos coming out within a week. We will be covering some more [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2009/12/031.png" alt="Database Image" title="Database Image" width="128" height="128" class="alignright size-full wp-image-471" /></p>
<p>Hi,</p>
<p>I haven&#8217;t been working on killerphp for a little while because of work on other websites in the killersites network &#8230; OK, and other things too.</p>
<p>&#8230; Xbox can take up a lot of time!!</p>
<p>What&#8217;s news?</p>
<p>Well, we have a whole slew of advanced <a href="http://www.killerphp.com/mysql/">MySQL videos</a> coming out within a week. We will be covering some more advanced topics not covered in our PHP basics video course. </p>
<p>As usual, many of the videos will be posted here for free and many others will be available via our <a href="http://www.killersites.com/university/">video tutorial subscription service</a> and also as a complete stand-alone <a href="http://www.killervideostore.com/">screencast course for download or on DVD</a>.</p>
<p>Thanks,</p>
<p>Stefan Mischook<br />
www.killerphp.com </p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/mysql-video-tutorials-coming-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Trend is Zend &#8230; in PHP</title>
		<link>http://www.killerphp.com/articles/the-trend-is-zend-in-php/</link>
		<comments>http://www.killerphp.com/articles/the-trend-is-zend-in-php/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 00:24:56 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[Advanced PHP]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Zend-Framework]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=543</guid>
		<description><![CDATA[
Hi,
People ask me from time to time, what PHP framework is the best one to learn?
Well, I always look at technology choices with two things in mind:

How capable is the technology?
How accepted is the technology?

If you look around, it becomes pretty clear, that if you want to learn an effective web application framework, you want [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2007/11/picture-1.png" alt="zend framework logo" title="zend framework logo" width="227" height="58" class="alignright size-full wp-image-100" /></p>
<p>Hi,</p>
<p>People ask me from time to time, what PHP framework is the best one to learn?</p>
<p>Well, I always look at technology choices with two things in mind:</p>
<ol>
<li>How capable is the technology?</li>
<li>How accepted is the technology?</li>
</ol>
<p>If you look around, it becomes pretty clear, that if you want to learn an effective web application framework, you want to learn the <a href="http://www.killerphp.com/zend-framework/">Zend Framework</a> &#8211; indeed, the <a href="http://www.killerphp.com/articles/php-video-why-zend-instead-of-other-php-framework/">trend is with Zend</a>.</p>
<p><strong>Zend framework being used by companies large and small</strong></p>
<p>I know from first-nerd experience that the Zend Framework is being widely adopted. Just recently for example, Intuit and the BBC have implemented new web apps that are Zend Framework based.</p>
<p>&#8230; I know because my good buddy Jon Lebensold of <a href="http://www.zendcasts.com/">Zendcasts</a> helped build one of them. </p>
<p>There are plenty of other examples out there I&#8217;m sure &#8230; and I am confident that the trend will continue towards the adoption of the Zend Framework. With the PHP company (Zend) and IBM behind it &#8230; it doesn&#8217;t take a brain surgeon to figure that one out.</p>
<p>Thanks for reading,</p>
<p>Stefan Mischook<br />
www.killerphp.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/the-trend-is-zend-in-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Two thumbs up for the Zend Framework Nerds.</title>
		<link>http://www.killerphp.com/articles/two-thumbs-up-for-the-zend-framework-nerds/</link>
		<comments>http://www.killerphp.com/articles/two-thumbs-up-for-the-zend-framework-nerds/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 03:33:59 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[Zend-Framework]]></category>
		<category><![CDATA[php podcast]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=524</guid>
		<description><![CDATA[
Hi,
I&#8217;ve been busy with things and so not too many updates lately. Not to worry thought, we have a brand new course and lots of free videos coming out soon on advanced MySQL.
In the following podcast (it was a video but I changed my mind &#8230;), I talk about the pragmatism of the Zend Framework [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2010/01/085.png" alt="microphone-podcast-icon" title="microphone-podcast-icon" width="128" height="128" class="alignright size-full wp-image-541" /></p>
<p>Hi,</p>
<p>I&#8217;ve been busy with things and so not too many updates lately. Not to worry thought, we have a brand new course and lots of free videos coming out soon on advanced MySQL.</p>
<p>In the following podcast (it was a video but I changed my mind &#8230;), I talk about the pragmatism of the Zend Framework dudes.</p>
<p>MP3: <a href='http://www.killerphp.com/articles/wp-content/uploads/2010/01/zendframework-and-doctrine.mp3'>zendframework-and-doctrine</a></p>
<p>Short and sweet.</p>
<p>Stefan Mischook<br />
www.killerphp.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/two-thumbs-up-for-the-zend-framework-nerds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.killerphp.com/articles/wp-content/uploads/2010/01/zendframework-and-doctrine.mp3" length="3793983" type="audio/mpeg" />
		</item>
		<item>
		<title>Killersites University &#8211; Video Library</title>
		<link>http://www.killerphp.com/articles/killersites-university-video-library/</link>
		<comments>http://www.killerphp.com/articles/killersites-university-video-library/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 06:34:41 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[PHP Videos]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=511</guid>
		<description><![CDATA[
Hi,
I&#8217;ve been out of the picture for a little while, mainly because we&#8217;ve been busy with our new video tutorial subscription service. 
Some PHP nerd details:
We built the web application from scratch using a basic MVC model with straightforward database work &#8211; no ORM was required for such a simple project. 
The most time consuming [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2010/01/ks-university.png" alt="killersites university logo" title="killersites university logo" width="175" height="158" class="alignright size-full wp-image-513" /></p>
<p>Hi,</p>
<p>I&#8217;ve been out of the picture for a little while, mainly because we&#8217;ve been busy with our new <a href="http://www.killersites.com/university/">video tutorial subscription</a> service. </p>
<p><strong>Some PHP nerd details:</strong></p>
<p>We built the web application from scratch using a basic MVC model with straightforward database work &#8211; no ORM was required for such a simple project. </p>
<p>The most time consuming aspect of this project was getting the UI to look good and work well &#8211; <a href="http://www.killerjavascript.com/beginners-jquery/">jQuery</a> came in handy once again. </p>
<p>Anyway, you will find most of our PHP tutorials in there &#8230; and soon, a bunch of new video tutorials we are working on now.</p>
<p><strong>The official announcement:</strong></p>
<p>After a couple of months of hard work, we finally got the new video tutorial subscription system up and running.</p>
<p>About the University:</p>
<p>The Killersites University is a subscription based service that gives you total access to our GROWING collection of web design and web design related training videos. Not just a collection of tips and tricks videos, we provide complete video courses on popular subjects like:</p>
<p>* HTML<br />
* CSS<br />
* Dreamweaver<br />
* PHP<br />
* Javascript<br />
* and much more</p>
<p>You can learn more about it here:</p>
<p><a href="http://www.killersites.com/university/">http://www.killersites.com/university/</a></p>
<p>What’s next?</p>
<p>Now that we have the University up and running, we will be able to focus a lot more time on new videos. Subscribe to the RSS feed or one of my newsletters to keep up-to-date.</p>
<p>Thanks,<br />
Stefan Mischook<br />
www.killersites.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/killersites-university-video-library/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Merry Xmas from Stefan.</title>
		<link>http://www.killerphp.com/articles/merry-xmas-from-stefan/</link>
		<comments>http://www.killerphp.com/articles/merry-xmas-from-stefan/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 01:43:13 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=509</guid>
		<description><![CDATA[Hi,
I just wanted to wish everyone happy holidays and a merry xmas &#8211; if applicable.
  
In other news .. well, we&#8217;ve been working hard on stuff and should have a bunch of new videos in January.
Thanks,
Stefan Mischook
]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>I just wanted to wish everyone happy holidays and a merry xmas &#8211; if applicable.</p>
<p> <img src='http://www.killerphp.com/articles/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In other news .. well, we&#8217;ve been working hard on stuff and should have a bunch of new videos in January.</p>
<p>Thanks,<br />
Stefan Mischook</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/merry-xmas-from-stefan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What are ORM Frameworks &#8211; the video!</title>
		<link>http://www.killerphp.com/articles/what-are-orm-frameworks-the-video/</link>
		<comments>http://www.killerphp.com/articles/what-are-orm-frameworks-the-video/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:46:33 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[Advanced PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP Videos]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=500</guid>
		<description><![CDATA[Hi,
I decided to create a video based on my recent article on ORM frameworks. I shot this in HD &#8230; so select the HD option if you got big pipes. 

Let me know what you think.
Stefan Mischook 
]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>I decided to create a video based on my recent <a href="http://www.killerphp.com/articles/what-are-orm-frameworks/">article on ORM frameworks</a>. I shot this in HD &#8230; so select the HD option if you got big pipes. </p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/h7_pPJGdwGw&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/h7_pPJGdwGw&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>Let me know what you think.</p>
<p>Stefan Mischook </p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/what-are-orm-frameworks-the-video/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What are ORM Frameworks?</title>
		<link>http://www.killerphp.com/articles/what-are-orm-frameworks/</link>
		<comments>http://www.killerphp.com/articles/what-are-orm-frameworks/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 20:14:07 +0000</pubDate>
		<dc:creator>Stefan Mischook</dc:creator>
				<category><![CDATA[Advanced PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Object Oriented PHP]]></category>
		<category><![CDATA[PHP Videos]]></category>

		<guid isPermaLink="false">http://www.killerphp.com/articles/?p=428</guid>
		<description><![CDATA[
In the following article we will learn a few things about ORM frameworks:

What they are.
What they do.
When and why to use them.
And finally, what ORM options PHP&#8217;ers have.

Let&#8217;s start &#8230;
If you&#8217;re working with PHP, you will certainly find yourself working with relational databases (like MySQL) sooner or later. Anyone who has ever built a reasonably [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2009/12/031.png" alt="Database Image" title="Database Image" width="128" height="128" class="alignright size-full wp-image-471" /></p>
<p>In the following article we will learn a few things about ORM frameworks:</p>
<ul>
<li>What they are.</li>
<li>What they do.</li>
<li>When and why to use them.</li>
<li>And finally, what ORM options PHP&#8217;ers have.</li>
</ul>
<p><strong>Let&#8217;s start &#8230;</strong></p>
<p>If you&#8217;re working with PHP, you will certainly find yourself working with relational databases (like MySQL) sooner or later. Anyone who has ever built a reasonably complex web application knows, that the SQL can get really hairy at times &#8211; especially when you consider all the data filtering that you have to deal with! </p>
<p><strong>ORM frameworks to the rescue!</strong></p>
<p>ORM is yet another nerd-acronym, it is short for Object Relational Mapping. In a nutshell, an ORM framework is written in an object oriented language (like PHP, Java, C# etc&#8230;) and it is designed to virtually wrap around a relational database. If you look at the name (ORM), it basically translates into: mapping objects to relational tables.</p>
<p>There are many different competing ORM frameworks out there, because many nerds have their own ideas as to how to best do things &#8211; nothing new here! But you know what, some of these nerds are right &#8230; not all ORM frameworks are created equal. </p>
<p><span id="more-428"></span></p>
<p><img src="http://www.killerphp.com/articles/wp-content/uploads/2009/12/orm-framework.png" alt="orm-framework" title="orm-framework" width="186" height="283" class="alignright size-full wp-image-487" /></p>
<p><strong>OK, but what does an ORM framework do?</strong></p>
<p>Basically, the ORM framework/software generates objects (as in OOP) that virtually map (like the map of a city) the tables in a database. Then you as a programmer, would use these objects to interact with the database. So the main idea, is to try and shield the programmer from having to write optimized SQL code &#8211; the ORM generated objects take care of that for you. So let&#8217;s take a look at a simple example:</p>
<p>Say for instance you had a database with two tables:</p>
<ul>
<li>Clients</li>
<li>Products</li>
</ul>
<p>With a little bit of configuration on your part, the ORM framework would then create corresponding objects (say, clients_object and products_object) that would handle all the database interaction. So let&#8217;s say you need to add a new client to the database, you would just have to use the ORM&#8217;s clients_object to add the new client. </p>
<p>For example, it could be as simple as calling the object&#8217;s &#8217;save()&#8217; method:</p>
<p><code>client = new clients_object("Stefan","Mischook");<br />
client.save();</code></p>
<p>The above of course, is just pseudo code, mainly because the syntax will vary from ORM framework and from language to language. But hopefully you get the general idea of how much easier an ORM framework can make things (no SQL!) .. not to mention how much cleaner your application&#8217;s code will be.</p>
<p><strong>Some other advantages of using ORM frameworks</strong></p>
<p>1. Harmonization of data types between the OO language (in our case, PHP) and the SQL database. All relational databases use data types for each of the fields, for example: int, small int, blob, char etc. The thing is, that sometimes you have to convert the data types on the fly to properly add a record to the database. A good ORM will take care of these details for you.</p>
<p>2. Using an ORM will create a consistent code base for your application since much (if not all) of the code used to interact with the database will be PHP &#8211; no SQL code to mess things up. This makes it easier to write and debug your application, especially if you have more programmers on a job.</p>
<p>3. ORM frameworks will shield your application from SQL injection attacks since the framework will be filtering the data for you.</p>
<p>4. Database Abstraction; I am a little hesitant to make this point because in practice, over the last 10-15 years, I have only seen it once where we switched databases on an application. That said, ORM will make this much easier since it takes care of writing all the SQL code, data type conversions etc &#8230; </p>
<p><strong>When to use an ORM framework?</strong></p>
<p>From my personal experience, an ORM framework becomes more useful as the size and complexity of the project increases. If you just have a simple database with say 5 tables and 5-6 queries &#8230; setting up an ORM framework may be overkill.  I would start considering the use of ORM when:</p>
<ul>
<li>You have 3 or more programmers on a web application.</li>
<li>Your database consist of 10+ tables.</li>
<li>You have say 10+ queries to make.</li>
</ul>
<p><strong>ORM frameworks can&#8217;t do it all</strong></p>
<p>If you think that using an ORM framework will allow you to forget SQL and never have to look back, think again. Once you jump into the ORM world, you will find that about 80-90% of your queries can be handled by the ORM generated objects. It is inevitable that at some point you will need to drop down and use some SQL or some SQL like query language.  </p>
<p>In fact, ORM frameworks often have their own *QL query language that looks a lot like SQL. Doctrine, a popular PHP based ORM framework has DQL (Doctrine Query Language) and the very popular Hibernate (used in the Java and .Net world) has HQL. Going even further, Hybernate allows you to write straight SQL if need be.  </p>
<p>Despite the need for a SQL like language in ORM frameworks, they can still be very valuable tools in your PHP work.</p>
<p><strong>ORM Frameworks for PHP programmers</strong></p>
<p>Not an exhaustive list, but here are a few ORM frameworks to consider:</p>
<ul>
<li><a href="http://www.doctrine-project.org/">Doctrine</a></li>
<li>Part of the cool Zend Framework <a href="http://framework.zend.com/manual/en/zend.db.html">Zend Db</a></li>
<li><a href="http://cakephp.org/">CakePHP has ORM</a> built into it.</li>
<li><a href="http://www.redbeanphp.com/">RedBean</a> ORM without configuration!</li>
</ul>
<p>Thanks for reading,</p>
<p>Stefan Mischook<br />
www.killerphp.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killerphp.com/articles/what-are-orm-frameworks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
