<?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>shepherdweb.com &#187; CakePHP</title>
	<atom:link href="http://shepherdweb.com/category/frameworks/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>http://shepherdweb.com</link>
	<description>Shane Shepherd: web design and development; music</description>
	<lastBuildDate>Wed, 11 Nov 2009 01:46:13 +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>Undefined index: action in /cake/dispatcher.php line 144</title>
		<link>http://shepherdweb.com/2007/04/02/undefined-index-action-in-cakedispatcherphp-line-144/</link>
		<comments>http://shepherdweb.com/2007/04/02/undefined-index-action-in-cakedispatcherphp-line-144/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 02:32:07 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2007/04/02/undefined-index-action-in-cakedispatcherphp-line-144/</guid>
		<description><![CDATA[It took me almost an hour to figure out what was causing this error.
Undefined index: action in /cake/dispatcher.php line 144


The problem turned out to be that one of the values in $property["Listing"] was returning a value which included a space.  Something like this: &#8220;396 &#8220;.  Since the requestAction method uses a URL to [...]]]></description>
			<content:encoded><![CDATA[<p>It took me almost an hour to figure out what was causing this error.</p>
<blockquote><p>Undefined index: action in /cake/dispatcher.php line 144</p>
</blockquote>
<p><code class="block"><?php<br />
$aInfo = $this->requestAction('/tours/GetAgentInfo/' . $property["Listing"]["agent"] . '/' . $property["Listing"]["listingoffice"]);<br />
?></code></p>
<p>The problem turned out to be that one of the values in <code>$property["Listing"]</code> was returning a value which included a <kbd>space</kbd>.  Something like this: &#8220;396 &#8220;.  Since the <code>requestAction</code> method uses a URL to get it&#8217;s parameters, it was bombing when the URL looked like this: &#8216;/tours/GetAgentInfo/396 /94&#8242;.  I used the php <code>trim()</code> function to remove spaces, and presto&hellip; problem solved!</p>
<p><code class="block"><?php<br />
$aInfo = $this->requestAction('/tours/GetAgentInfo/' . trim($property["Listing"]["agent"]) . '/' . trim($property["Listing"]["listingoffice"]));<br />
?></code></p>
<div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/CakePHP" rel="tag">CakePHP</a>, <a href="http://technorati.com/tag/PHP" rel="tag"> PHP</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2007/04/02/undefined-index-action-in-cakedispatcherphp-line-144/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using the CakePHP selectTag HtmlHelper</title>
		<link>http://shepherdweb.com/2007/01/07/using-the-cakephp-selecttag-htmlhelper/</link>
		<comments>http://shepherdweb.com/2007/01/07/using-the-cakephp-selecttag-htmlhelper/#comments</comments>
		<pubDate>Mon, 08 Jan 2007 04:46:18 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2007/01/07/using-the-cakephp-selecttag-htmlhelper/</guid>
		<description><![CDATA[The use of the selectTag HtmlHelper seems to be confusing to a lot of people (judging from the popularity of questions about it in the CakePHP Google Group).  Hopefully I can clear up a few things about it.
Parameters
selectTag ($fieldName, $optionElements, $selected=null, $selectAttr=array(), $optionAttr=null, $showEmpty=true, $return=false)
$fieldName will typically be the name of your model in [...]]]></description>
			<content:encoded><![CDATA[<p>The use of the <a href="http://api.cakephp.org/class_html_helper.html#dc661e84e1710023d94691fad33f40ec">selectTag</a> <a href="http://api.cakephp.org/class_html_helper.html">HtmlHelper</a> seems to be confusing to a lot of people (judging from the <a href="http://groups-beta.google.com/group/cake-php/search?group=cake-php&#038;q=selectTag&#038;qt_g=Search+this+group">popularity</a> of questions about it in the <a href="http://groups-beta.google.com/group/cake-php">CakePHP Google Group</a>).  Hopefully I can clear up a few things about it.</p>
<h2>Parameters</h2>
<p>selectTag ($fieldName, $optionElements, $selected=null, $selectAttr=array(), $optionAttr=null, $showEmpty=true, $return=false)</p>
<p><code>$fieldName</code> will typically be the name of your model in the singular slash (&#8216;/&#8217;) the primary key: <code>'Post/post_id'</code>.</p>
<p><code>$optionElements</code> is an array of &#8216;value&#8217; =>&#8217;text&#8217; pairs.  The <a href="http://api.cakephp.org/class_model.html#e8844b859626edc554946480046e395f">generateList</a> method is very useful for creating this array.</p>
<p><code>$selected</code> defaults to null and can be used to set the selected option.</p>
<p><code>$selectAttr</code> is an array. It is used to define HTML attributes for the opening <code>select</code> element: <code>array('onclick' => 'myfunction();', 'class' => 'cssclassname')</code></p>
<p><code>$optionAttr </code> serves the same purpose that <code>$selectAttr</code> does, except it applies to the <code>option</code> elements.</p>
<p><code>$showEmpty</code> is used to set whether or not the list has an empty option at the top.  The default is true.  If changed to false, the first <code>option</code> element will be the first value/text pair in your <code>$optionElements</code> array.</p>
<p><code>$return</code> default is false and it defines whether or not this method should return a value.  I don&#8217;t know of any reason why this would ever be set to true.  If someone knows of a scenario where this is useful, please share!</p>
<h2>Application</h2>
<p>Like other HtmlHelpers, the selectTag can be used in a View within the CakePHP MVC framework including Layouts and Helpers.  Typically you would load some data to an array in a <code>'value' =>'text'</code> pair arrangement before calling the selectTag method (example 1).  However, the array can be built &#8220;on the fly&#8221; as well (example 2).</p>
<h5>Example 1</h5>
<p><code class="block"><br />
&lt;?php $agentArray = $this-&gt;requestAction('/agents/select'); ?&gt;<br />
&lt;?=$html-&gt;selectTag('Agent/agent_id', $agentArray, null, array(), null, true, false);?&gt;<br />
</code></p>
<h5>Example 2</h5>
<p><code class="block"><br />
&lt;?=$html-&gt;selectTag('Listing/price',<br />
					array(<br />
						'0' =&gt; 'no min',<br />
						'50000' =&gt; '50,000',<br />
						'100000' =&gt; '100,000',<br />
						'125000' =&gt; '125,000',<br />
						'150000' =&gt; '150,000',<br />
						'175000' =&gt; '175,000',<br />
						'200000' =&gt; '200,000'), '0', array(), null, false, false); ?&gt;<br />
</code></p>
<p>This is by no means comprehensive, but hopefully useful.  The <a href="">CakePHP Google Group</a> and <a href="http://irc.cakephp.org/irc.html">CakePHP IRC Channel</a> are super when trying to wrap you head around something new.</p>
<div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/CakePHP" rel="tag">CakePHP</a>, <a href="http://technorati.com/tag/selectTag" rel="tag"> selectTag</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2007/01/07/using-the-cakephp-selecttag-htmlhelper/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Editing hasAndBelongsToMany (HABTM) Relationships in CakePHP</title>
		<link>http://shepherdweb.com/2006/08/21/editing-hasandbelongstomany-habtm-relationships-in-cakephp/</link>
		<comments>http://shepherdweb.com/2006/08/21/editing-hasandbelongstomany-habtm-relationships-in-cakephp/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 02:47:16 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2006/08/21/editing-hasandbelongstomany-habtm-relationships-in-cakephp/</guid>
		<description><![CDATA[I had a difficult time wrapping my head around how to do this.  The manual is not much help.  I did get a few clues from a couple of Wiki articles, but in the end I had to piece all this together with stuff I dug out of the CakePHP Google Group.
Let&#8217;s assume [...]]]></description>
			<content:encoded><![CDATA[<p>I had a difficult time wrapping my head around how to do this.  The <a href="http://manual.cakephp.org/">manual</a> is not much help.  I did get a few clues from a couple of <a href="http://wiki.cakephp.org/docs:understanding_associations">Wiki</a> <a href="http://wiki.cakephp.org/docs:method:read">articles</a>, but in the end I had to piece all this together with stuff I dug out of the <a href="http://groups.google.com/group/cake-php">CakePHP Google Group</a>.</p>
<p>Let&#8217;s assume we have two tables, colors and products.  Our model states that products <code>hasAndBelongsToMany</code> colors.  Also, colors <code>hasAndBelongsToMany</code> products.  </p>
<p>Add the following code to app_controller.php:<br />
<code class="block"><br />
	function getSelectedItems($data)<br />
	{<br />
		$return = array();<br />
        foreach ($data as $row)<br />
        {<br />
            $return[$row['id']] = $row['name'];<br />
        }<br />
        return $return;<br />
	}<br />
</code></p>
<p>Our edit function in the products_controller.php will look something like this:<br />
<code class="block"><br />
	function admin_edit($id = null)<br />
	{<br />
		if (empty($this->data))<br />
		{<br />
			$this->set('colors', $this->requestAction('/colors/select'));<br />
// get data for colors DropDownList<br />
$this->Product->id = $id;<br />
$this->data = $this->Product->read();<br />
$this->set('selected_colors', $this->getSelectedItems($this->data['Color']));<br />
		}<br />
		else<br />
		{<br />
		if ($this->Product->save($this->data))<br />
		{<br />
		$this->flash("Your product has been updated.", '/admin/products');<br />
			}<br />
			else<br />
			{<br />
				$this->flash("Unable to update your product.", '/admin/products');<br />
			}<br />
		}<br />
	}<br />
</code></p>
<p>And finally, the code for the multi-select:<br />
<code class="block"><br />
<?=$html->selectTag("Color/Color", $colors, $selected_colors, array('multiple' => 'multiple'))?><br />
</code></p>
<p>If the associations are set up correctly, Cake will automagically save the updated colors when <code>$this->Product->save($this->data)</code> is called in the products controller.  I hope this is helpful to someone, I spent a lot of time digging it up!</p>
<div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/cakephp" rel="tag">cakephp</a>, <a href="http://technorati.com/tag/HATBM" rel="tag"> HATBM</a>, <a href="http://technorati.com/tag/hasAndBelongsToMany" rel="tag"> hasAndBelongsToMany</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2006/08/21/editing-hasandbelongstomany-habtm-relationships-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>CakePHP Shopping Cart</title>
		<link>http://shepherdweb.com/2006/07/26/cakephp-shopping-cart/</link>
		<comments>http://shepherdweb.com/2006/07/26/cakephp-shopping-cart/#comments</comments>
		<pubDate>Thu, 27 Jul 2006 04:35:55 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2006/07/26/cakephp-shopping-cart/</guid>
		<description><![CDATA[Looking for a standards compliant, open source, php shopping cart built on the popular MVC CakePHP framework?  Checkout BakeSale.
Technorati Tags: CakePHP,  BakeSale,  ecommerce,  shoppingcart
]]></description>
			<content:encoded><![CDATA[<p>Looking for a standards compliant, open source, php shopping cart built on the popular MVC CakePHP framework?  Checkout <a href="http://bakesale.jeepen.net/">BakeSale</a>.</p>
<div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/CakePHP" rel="tag">CakePHP</a>, <a href="http://technorati.com/tag/BakeSale" rel="tag"> BakeSale</a>, <a href="http://technorati.com/tag/ecommerce" rel="tag"> ecommerce</a>, <a href="http://technorati.com/tag/shoppingcart" rel="tag"> shoppingcart</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2006/07/26/cakephp-shopping-cart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Framework Performance Comparison</title>
		<link>http://shepherdweb.com/2006/07/14/framework-performance-comparison/</link>
		<comments>http://shepherdweb.com/2006/07/14/framework-performance-comparison/#comments</comments>
		<pubDate>Sat, 15 Jul 2006 04:06:26 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Languages]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2006/07/14/framework-performance-comparison/</guid>
		<description><![CDATA[Stress tests were performed on three MVC frameworks, Symfony on PHP, Rails on Ruby and Django on Python.  Results have been published on the RoR Wiki.  I would be interested in seeing the results of the same tests run with CakePHP.Technorati Tags: frameworks,  symfony,  rails,  django,  cakephp,  mvc
]]></description>
			<content:encoded><![CDATA[<p>Stress tests were performed on three MVC frameworks, <a href="http://www.symfony-project.com/">Symfony</a> on PHP, <a href="http://rubyonrails.org/">Rails</a> on Ruby and <a href="http://www.djangoproject.com/">Django</a> on Python.  <a href="http://wiki.rubyonrails.com/rails/pages/Framework+Performance">Results</a> have been published on the RoR Wiki.  I would be interested in seeing the results of the same tests run with <a href="http://cakephp.org/">CakePHP</a>.<br /><div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/frameworks" rel="tag">frameworks</a>, <a href="http://technorati.com/tag/symfony" rel="tag"> symfony</a>, <a href="http://technorati.com/tag/rails" rel="tag"> rails</a>, <a href="http://technorati.com/tag/django" rel="tag"> django</a>, <a href="http://technorati.com/tag/cakephp" rel="tag"> cakephp</a>, <a href="http://technorati.com/tag/mvc" rel="tag"> mvc</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2006/07/14/framework-performance-comparison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single User Admin Area Authentication with CakePHP</title>
		<link>http://shepherdweb.com/2006/07/14/single-user-admin-area-authentication-with-cakephp/</link>
		<comments>http://shepherdweb.com/2006/07/14/single-user-admin-area-authentication-with-cakephp/#comments</comments>
		<pubDate>Sat, 15 Jul 2006 02:52:39 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2006/07/14/single-user-admin-area-authentication-with-cakephp/</guid>
		<description><![CDATA[This script is mostly the work of Shunro Dozono with some tweaks of my own to make it work with a path to /admin.  It handles simple administrator authentication for a single user.  Ok, here it goes&#8230;
Pre-requisite: CakePHP
First,  download Shuro&#8217;s component, sd_auth.  Copy and paste the code into a file called [...]]]></description>
			<content:encoded><![CDATA[<p>This script is mostly the work of <a href="http://cakephp.seesaa.net/">Shunro Dozono</a> with some tweaks of my own to make it work with a path to /admin.  It handles simple administrator authentication for a single user.  Ok, here it goes&#8230;</p>
<p>Pre-requisite: CakePHP</p>
<p>First,  download Shuro&#8217;s component, <a href="http://cakeforge.org/snippet/detail.php?type=snippet&#038;id=92">sd_auth</a>.  Copy and paste the code into a file called sd_auth.php and put it inside app/controllers/components.</p>
<p>Now, create app_controller.php in app/ and paste the code below:</p>
<p><code class="block"> class AppController extends Controller<br />
{<br />
var $components = array('SdAuth');<br />
function adminAuth()<br />
{<br />
// Auth Check.<br />
if($this->SdAuth->isloggedin() == FALSE)<br />
{<br />
$this->layout = "admin_login";<br />
} else {<br />
$this->layout = "admin";<br />
}<br />
}<br />
}</code></p>
<p>Next, uncomment the following line in app/config/core.php:</p>
<p><code class="block">define('CAKE_ADMIN', 'admin');</code></p>
<p>Now, if you pre-pend a function in any of your controllers with &#8220;admin_&#8221; (eg: admin_add) it will now be accessed via the path /admin/add.  Insert the authentication call at the beginning of each one of those functions:</p>
<p><code class="block">function admin_add()<br />
{<br />
$this->adminAuth();<br />
}</code></p>
<p>&#8230;and that method will be authenticated before continuing! Thanks for the tip Shunro.</p>
<div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/cakephp" rel="tag">cakephp</a>, <a href="http://technorati.com/tag/authentication" rel="tag"> authentication</a>, <a href="http://technorati.com/tag/php" rel="tag"> php</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2006/07/14/single-user-admin-area-authentication-with-cakephp/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tiptoe Through the Frameworks</title>
		<link>http://shepherdweb.com/2006/07/03/tiptoe-through-the-frameworks/</link>
		<comments>http://shepherdweb.com/2006/07/03/tiptoe-through-the-frameworks/#comments</comments>
		<pubDate>Mon, 03 Jul 2006 18:49:01 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Prado]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.shepherdweb.com/2006/07/03/tiptoe-through-the-frameworks/</guid>
		<description><![CDATA[Preface
Almost two years ago I jumped into ASP.NET and C# headfirst.  This was my first exposure to OOP.  I love it, and I don&#8217;t plan on turning back.  However, for personal projects and freelancing I prefer to use PHP.  PHP was my first &#8220;server-side&#8221; language (not counting a really small ASP [...]]]></description>
			<content:encoded><![CDATA[<h3>Preface</h3>
<p>Almost two years ago I jumped into ASP.NET and C# headfirst.  This was my first exposure to <acronym title="Object Oriented Programming">OOP</acronym>.  I love it, and I don&#8217;t plan on turning back.  However, for personal projects and freelancing I prefer to use PHP.  PHP was my first &#8220;server-side&#8221; language (not counting a <em>really</em> small ASP email script I <del>wrote</del> <ins>leveraged</ins> on my very first freelance development gig).  I love it for it&#8217;s straight forward nature, low cost, and great support.</p>
<p>Many of the conveniences that ASP.NET offers are not inherently available with PHP.  This, and the chest-beating of many <acronym title="Ruby on Rails">RoR</acronym> developers, has led me on a quest for a useful Framework for PHP.</p>
<h3>The Quest Begins</h3>
<p>I began by simply <a href="http://www.google.com/search?hl=en&#038;q=php+frameworks&#038;btnG=Google+Search">googling &#8220;php frameworks&#8221;</a>.  This returned a plethora of comparisons and reviews which I began to peruse.  Along the way I learned some new  terminology: <a href="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller</a>.  Four frameworks stood out to me based on feature set, community, support, and cost (free!).</p>
<h3>The Frameworks</h3>
<h4><a href="http://www.pradosoft.com/">Prado</a></h4>
<p>I was initially impressed by several things about Prado:</p>
<ol>
<li>Currently on version 3 and has a two year track record</li>
<li>It has an active community</li>
<li>It&#8217;s methodology is very similar to ASP.NET</li>
<li>The majority of the Framework is very well documented</li>
<li>Native development for PHP 5</li>
</ol>
<p>Based on these strengths I decided to try Prado first.  I found it easy to install and begin building applications.  I built a simple login and used their templating system.  Overall, I found the entire environment very friendly familiar.  However, Prado suffers from some performance hits because of it&#8217;s architecture when using complicated dynamic templates.  For this reason I decided to continue my quest.  However, I would recommend Prado to anyone coming from ASP.NET who is developing small to medium sized applications.</p>
<h4><a href="http://www.symfony-project.com/">Symfony</a></h4>
<p>Symfony seemed like the next logical progression.  It is well documented, highly reviewed, and seems to be very robust and efficient.  I spent about an hour tooling around the documentation. I decided to abandon Symfony and move on after reading the <a href="http://www.symfony-project.com/content/book/page/installation.html">installation documentation</a>  Please don&#8217;t judge me, I just get nervous when I have to do that much jockeying around with the command line.</p>
<h4><a href="http://cakephp.org/">CakePHP</a></h4>
<p>It looks like I&#8217;m probably going to stick with Cake.</p>
<ol>
<li>Easy to install</li>
<li>Active, enthusiastic community</li>
<li>Good beginner tutorials (unfortunately the remainder of the documentation is still under development and leaves a lot to be desired)</li>
</ol>
<p>I was up and running and had built my first basic application in under an hour using the easy to follow <a href="http://manual.cakephp.org/chapter/20">blog tutorial</a>.  However, as I&#8217;ve tried to dig deeper I&#8217;ve had to dive into <a href="http://groups.google.com/group/cake-php?lnk=li&#038;hl=en">google groups</a>, irc, and other sites for help figuring out the subtleties of Cake.</p>
<h4><a href="http://codeigniter.com/">Code Igniter</a></h4>
<p>I haven&#8217;t tried it yet, but it looks interesting.  If Cake doesn&#8217;t work out, it&#8217;s next on the list.</p>
<div class="techtags"><p>Technorati Tags: <a href="http://technorati.com/tag/php" rel="tag">php</a>, <a href="http://technorati.com/tag/frameworks" rel="tag"> frameworks</a>, <a href="http://technorati.com/tag/prado" rel="tag"> prado</a>, <a href="http://technorati.com/tag/symfony" rel="tag"> symfony</a>, <a href="http://technorati.com/tag/cakephp" rel="tag"> cakephp</a>, <a href="http://technorati.com/tag/codeigniter" rel="tag"> codeigniter</a></p></div>
]]></content:encoded>
			<wfw:commentRss>http://shepherdweb.com/2006/07/03/tiptoe-through-the-frameworks/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
