<?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>PHPkitchen &#187; OOP</title>
	<atom:link href="http://phpkitchen.com/category/programming/oop/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpkitchen.com</link>
	<description>PHP and Web Development News and Tips</description>
	<lastBuildDate>Thu, 01 Jul 2010 11:59:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Class Naming Should Clearly define Object Responsibility</title>
		<link>http://phpkitchen.com/2007/05/class-naming-should-clearly-define-object-responsibility/</link>
		<comments>http://phpkitchen.com/2007/05/class-naming-should-clearly-define-object-responsibility/#comments</comments>
		<pubDate>Sun, 27 May 2007 12:23:23 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=755</guid>
		<description><![CDATA[Rendering views just got a whole lot easier with the Zend framework   If don&#8217;t yet have a front controller instance:
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
or if you do:
$viewRenderer = Zend_Controller_Action_HelperBroker::getExistingHelper('viewRenderer');$viewRenderer-&#62;setView($view);
Okay, maybe it&#8217;s not that easy.  Let&#8217;s look at how the $viewRenderer object is instantiated, using the Zend_Controller_Action_Helper_ViewRenderer class.  Using the PEAR naming [...]]]></description>
			<content:encoded><![CDATA[<p>Rendering views just got a whole lot easier with the Zend framework <img src='http://phpkitchen.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  If don&#8217;t yet have a front controller instance:
<pre>$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);</pre>
<p>or if you do:
<pre>$viewRenderer = Zend_Controller_Action_HelperBroker::getExistingHelper('viewRenderer');$viewRenderer-&gt;setView($view);</pre>
<p>Okay, maybe it&#8217;s not that easy.  Let&#8217;s look at how the $viewRenderer object is instantiated, using the Zend_Controller_Action_Helper_ViewRenderer class.  Using the PEAR naming convention has proven its worth beyond the point of contest, but how many related concepts are inferred by this class name?
<pre>Zend_Controller_Action_Helper_ViewRenderer</pre>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2007/05/class-naming-should-clearly-define-object-responsibility/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Modularising Workflow with an Intercepting Filter</title>
		<link>http://phpkitchen.com/2005/09/modularising-workflow-with-an-intercepting-filter/</link>
		<comments>http://phpkitchen.com/2005/09/modularising-workflow-with-an-intercepting-filter/#comments</comments>
		<pubDate>Fri, 30 Sep 2005 14:35:16 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=713</guid>
		<description><![CDATA[While we&#8217;re on the subject of useful refactorings, I&#8217;d like to describe how using an Intercepting Filter helped round up and modularise software setup and initialisation tasks.  Before the code could get down to business with the framework&#8217;s main task, the SGL_MainProcess, (eg booking a hotel room or editing an FAQ, whatever), a certain [...]]]></description>
			<content:encoded><![CDATA[<p align="baseline">While we&#8217;re on the subject of useful refactorings, I&#8217;d like to describe how using an Intercepting Filter helped round up and modularise software setup and initialisation tasks.  Before the code could get down to business with the <a href="http://seagull.phpkitchen.com">framework&#8217;s</a> main task, the SGL_MainProcess, (eg booking a hotel room or editing an FAQ, whatever), a certain amount of setup was necessary.</p>
<p align="baseline">In the previous version, a number of initialisation tasks were assigned to a single init() method in the AppController, then executed procedurally.  The disadvantage of this approach was that the tasks were not testable, they were difficult to reorder, and it was prohibitive to insert custom routines into the pipeline.</p>
<p align="baseline">Enter the Intercepting Filter, which is basically a chain of decorators.  The idea is that you have your main process, then you decorate it with <i>n</i> filters or tasks required to get your system correctly initialised beforehand.  The code makes the example clearer:</p>
<pre>class SGL_AppController{       function run()    {        $input = &amp;SGL_RequestRegistry::singleton();        $input-&gt;setRequest($req = SGL_Request::singleton());

        $process =  new SGL_Init(                    new SGL_DiscoverClientOs(                    new SGL_ManagerResolver(                    new SGL_InitSession(                    new SGL_InitLangSupport(                    new SGL_InitPerms(                    new SGL_AuthenticateRequest(                    new SGL_BuildHeaders(                    new SGL_SetLocale(                    new SGL_DetectDebug(                    new SGL_DetectBlackListing(                    new SGL_MainProcess()                   )))))))))));

        $process-&gt;process($input);    }}</pre>
<p align="baseline">From <a href="http://www.phpkitchen.com/index.php?/archives/711-PHP-5-Objects,-Patterns,-and-Practice.html">Matt Zandstra&#8217;s book</a>:</p>
<blockquote><p align="baseline">The model is very extensible.  We can add new decorators and components very easily.  With lots of decorators we can build very flexible structures at runtime.  The component class [<i>in our case SGL_MainProcess</i>] can be significantly modified in very many ways without the need to build the totality of the modifications into the class hierarchy.</p>
</blockquote>
<p align="baseline">Here&#8217;s the UML:</p>
<p align="baseline" />
<p align="baseline" />
<p><img src="http://seagullfiles.phpkitchen.com/images/InterceptingFilter.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/09/modularising-workflow-with-an-intercepting-filter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Implementing an Output Renderer Strategy</title>
		<link>http://phpkitchen.com/2005/09/implementing-an-output-renderer-strategy/</link>
		<comments>http://phpkitchen.com/2005/09/implementing-an-output-renderer-strategy/#comments</comments>
		<pubDate>Thu, 29 Sep 2005 12:16:08 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=712</guid>
		<description><![CDATA[An interesting design problem became apparent when a
number of folks from the seagull ML recently complained about the lack
of support for web clients other than standard browsers.  Because the code
enforces reasonable segregation between the domain modelling and the
html views, I always presumed it would be trivial to implement, ie, an
xml renderer instead of the [...]]]></description>
			<content:encoded><![CDATA[<p align="baseline">An interesting design problem became apparent when a<br />
number of folks from the <a href="http://dir.gmane.org/gmane.comp.php.seagull.general">seagull ML</a> recently complained about the lack<br />
of support for web clients other than standard browsers.  Because the code<br />
enforces reasonable segregation between the domain modelling and the<br />
html views, I always presumed it would be trivial to implement, ie, an<br />
xml renderer instead of the current Flexy to handle WML output.<br />
Two problems needed to be solved:</p>
<ol>
<li>the Flexy renderer was hard-coded in the final stage of a validate/process/display workflow</li>
<li>worse, a number of post-processing tasks, mainly assembling of blocks and building of main navigation were also hard-coded</li>
</ol>
<p>In short, the process was quite tied to producing HTML-only output, clearly <i>n</i><br />
blocks and involved navigation were unsuitable for PDA output.  </p>
<p>I<br />
identified two main refactorings necessary to decouple the view<br />
production from the output type and specific renderer used, thereby<br />
opening the door to running customised post-process tasks based on the current<br />
rendering strategy.</p>
<p>To<br />
allow an arbitrary renderer to be specified at runtime I chose to<br />
compose the View object with a OutputRendererStrategy.  This means<br />
if you&#8217;re happy with <a href="http://pear.php.net/package/HTML_Template_Flexy">Flexy</a> you can use the standard renderer supplied<br />
with the package, and if you can&#8217;t bear the thought of working without<br />
<a href="http://smarty.php.net/">Smarty</a>, it&#8217;d be a piece of cake to write a SmartyOutputRenderStrategy<br />
following the Flexy example.  The code would look something like<br />
this:</p>
<pre>    //  build view    $view = new SGL_HtmlView($output, new SGL_HtmlFlexyRendererStrategy());    echo $view-&gt;render();</pre>
<p>where the $output object is just a php data structure free of any<br />
presentation information.  The next problem was more interesting,<br />
how does producing output for portable devices change the appliation<br />
requirements.  The basic data structure sent to the view is<br />
similar, but the following main differences are evident:</p>
<ul>
<li>any paginated lists sent to the template needed to be a lot shorter, with simpler paging</li>
<li>any superfluous info like that found in left/right column blocks had to go</li>
<li>navigation had to be dramatically simplified</li>
</ul>
<p>Using the View type but switching implementation as runtime made it<br />
very easy to achieve this, where WmlView implements specialised<br />
minimalist post processing tasks, and uses an xlst renderer to output<br />
WML.  The code would look like this:</p>
<pre>    //  build view    $view = new SGL_WmlView($output, new SGL_XmlRendererStrategy());    echo $view-&gt;render();</pre>
<p align="baseline">The <a href="http://seagull.phpkitchen.com:8172/svn/seagull/trunk/lib/SGL/AppController.php">code</a><br />
is currently only in svn but will make it out in the 0.5.1 devel<br />
release planned shortly.  The following UML summarises the idea:</p>
<p><img src="http://seagullfiles.phpkitchen.com/images/RendererStrategy.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/09/implementing-an-output-renderer-strategy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Last PHPlondon meetup and Depedency Injection talk</title>
		<link>http://phpkitchen.com/2005/08/last-phplondon-meetup-and-depedency-injection-talk/</link>
		<comments>http://phpkitchen.com/2005/08/last-phplondon-meetup-and-depedency-injection-talk/#comments</comments>
		<pubDate>Thu, 11 Aug 2005 11:33:50 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=704</guid>
		<description><![CDATA[I didn&#8217;t realise we covered so much territory in last month&#8217;s PHPlondon meetup.  Thanks to Marc&#8217;s gift for total recall there&#8217;s a pretty good summary of what was discussed here.
Highlights for me were Marcus Baker&#8217;s presentation on Dependency Injection (slides here), discussion of books people had been reading[1], and XP-related development practices.
In other news, [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t realise we covered so much territory in last month&#8217;s <a href="http://www.phplondon.org/wiki/">PHPlondon</a> meetup.  Thanks to <a href="http://www.phplondon.org/wiki/MarcCarlucci">Marc&#8217;s</a> gift for total recall there&#8217;s a pretty good summary of what was discussed <a href="http://www.phplondon.org/wiki/Meeting2005August4">here</a>.
<p>Highlights for me were <a href="http://www.phplondon.org/wiki/MarcusBaker">Marcus Baker&#8217;s</a> presentation on Dependency Injection (slides <a href="http://www.lastcraft.com/talks/">here</a>), discussion of books people had been reading[1], and XP-related development practices.</p>
<p>In other news, we had good progress last night with the PHP conference UK planning meeting, there&#8217;ll be a writeup soon but the low-down is it&#8217;ll happen probably Feb. 2006 and we should have a site up somewhere inside of two weeks.</p>
<p>[1] books:</p>
<p><strong>&quot;Design Patterns Explained: A New Perspective on Object-Oriented Design&quot;</strong><br />
Alan Shalloway, James J. Trott<br />
ISBN: 0321247140</p>
<p><strong>&quot;Head First Design Patterns&quot;</strong><br />
Elisabeth Freeman, Bert Bates, Kathy Sierra<br />
ISBN: 0596007124</p>
<p><strong>&quot;PHP 5 Objects, Patterns, Practice  &quot;</strong><br />
Matt Zandstra <br />
ISBN: 1590593804<br />
<a href="http://www.phplondon.org/wiki/GoodBooks">GoodBooks</a>: Yes</p>
<p><strong>&quot;Patterns of Enterprise Application Architecture&quot;  </strong><br />
Martin Fowler<br />
ISBN: 0321127420<br />
Available for <a href="http://www.phplondon.org/wiki/BookExchange">BookExchange</a> by  <a href="http://www.phplondon.org/wiki/RobertBarbour">RobertBarbour</a>, <a href="http://www.phplondon.org/wiki/AndrewLarssen">AndrewLarssen</a></p>
<p><strong>&quot;The Pragmatic Programmer&quot;</strong><br />
Andrew Hunt, Davis Thomas<br />
ISBN: 020161622X<br />
<a href="http://www.phplondon.org/wiki/GoodBooks">GoodBooks</a>: Yes</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/08/last-phplondon-meetup-and-depedency-injection-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEAR::Date issues</title>
		<link>http://phpkitchen.com/2005/07/peardate-issues/</link>
		<comments>http://phpkitchen.com/2005/07/peardate-issues/#comments</comments>
		<pubDate>Fri, 15 Jul 2005 09:46:18 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=702</guid>
		<description><![CDATA[At work we use PEAR::Date all over the place, and while the package is fine for most things, when it comes to timezone handling and daylight savings time offsets, there are some serious bugs that have been open in the PEAR bugtracker for around one year.
Andrew Hill writes in detail about a problem he&#8217;s trying [...]]]></description>
			<content:encoded><![CDATA[<p>At work we use <a href="http://pear.php.net/package/date">PEAR::Date</a> all over the place, and while the package is fine for most things, when it comes to timezone handling and daylight savings time offsets, there are some serious bugs that have been open in the PEAR bugtracker for around one year.</p>
<p><a href="http://www.fornax.net/s9y/archives/3-Timezones-PHP.html">Andrew Hill writes in detail</a> about a problem he&#8217;s trying to resolve regarding the TZ environment variable not being set in many linux systems and how this causes <a href="http://pear.php.net/package/date">PEAR::Date</a> to blow up when in DST.</p>
<p>Have similar experiences? Feel free to comment here since his ezPublish comments don&#8217;t work for anonymous users.</p>
<p />
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/07/peardate-issues/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>PHP 5 Objects, Patterns, and Practice</title>
		<link>http://phpkitchen.com/2005/07/php-5-objects-patterns-and-practice/</link>
		<comments>http://phpkitchen.com/2005/07/php-5-objects-patterns-and-practice/#comments</comments>
		<pubDate>Mon, 11 Jul 2005 20:17:54 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=701</guid>
		<description><![CDATA[Ever wanted to post something for over a month and never found the time?
I recently read Matt Zandstra&#8217;s PHP 5 Objects, Patterns, and Practice and thought I&#8217;d say a few good words about it for those who haven&#8217;t been recommended yet.  A lot of good PHP5 books have come out recently, eg something like [...]]]></description>
			<content:encoded><![CDATA[<p><img vspace="0" hspace="0" border="0" align="left" src="/uploads/patternsAndPractice.jpg" />Ever wanted to post something for over a month and never found the time?</p>
<p>I recently read <a href="http://www.corrosive.co.uk/">Matt Zandstra</a>&#8217;s <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1590593804/qid=1121112975/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-4448196-3612105?v=glance&#038;s=books&#038;n=507846">PHP 5 Objects, Patterns, and Practice</a> and thought I&#8217;d say a few good words about it for those who haven&#8217;t been recommended yet.  A lot of good PHP5 books have come out recently, eg something like <a href="http://www.phptr.com/bookstore/product.asp?isbn=013147149X&#038;rl=1">PHP 5 Power Programming</a> is an excellent resource for the finer points of charset issues, utf8 in PHP, timezone gotchas.  But it&#8217;s quite unusual in PHP circles for a book to come out that gives overall sound advice on application design.</p>
<p>I found Matt, who comes from a Java background, really hit the nail on the head, this book is an enjoyable read. While the first few chapters make allowances for readers who don&#8217;t have a lot of exposure to OOP, the rest is quite a stimulating read, helped along in no small part by Matt&#8217;s excellent unambiguous writing style.</p>
<p>The book deals not only with all major components of a large application, but has a very nice section on the Composite pattern, and spends time looking at Phing, PEAR, and the Reflection API, among other things.  The book finishes off with a parser project that brings together a lot of the concepts introduced in earlier chapters &#8211; I think even PHPers who consider themselves advanced will enjoy this.  Matt apparently works for Yahoo in London. </p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/07/php-5-objects-patterns-and-practice/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>HOWTO: working with PEAR</title>
		<link>http://phpkitchen.com/2005/04/howto-working-with-pear/</link>
		<comments>http://phpkitchen.com/2005/04/howto-working-with-pear/#comments</comments>
		<pubDate>Tue, 19 Apr 2005 12:13:49 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[pear]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=679</guid>
		<description><![CDATA[Hello,
I&#8217;m posting this to clear up how to find the PEAR path on most servers, and then at the end are instructions how to use PEAR in your PHP programs.
Editors note: this article is for beginner to intermediate level users, and I think will be useful to many as reported problems installing PEAR are still [...]]]></description>
			<content:encoded><![CDATA[<p>Hello,</p>
<p>I&#8217;m posting this to clear up how to find the PEAR path on most servers, and then at the end are instructions how to use PEAR in your PHP programs.</p>
<p><i>Editors note: this article is for beginner to intermediate level users, and I think will be useful to many as reported problems installing PEAR are still widespread in the forums, etc. &#8211; Demian</i></p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/04/howto-working-with-pear/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DB portability Idea</title>
		<link>http://phpkitchen.com/2005/03/db-portability-idea/</link>
		<comments>http://phpkitchen.com/2005/03/db-portability-idea/#comments</comments>
		<pubDate>Thu, 10 Mar 2005 11:43:52 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=664</guid>
		<description><![CDATA[There&#8217;s quite an interesting article by Daniel Convissor, the maintainer of PEAR DB, on making a database schema portable across DB vendors.  His approach is quite interesting, he uses customised meta tags to describe data types, then runs the meta-schema through a regex-replace script to produce native outputs for the target DB.
]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s quite an interesting <a href="http://www.analysisandsolutions.com/presentations/portability">article</a> by Daniel Convissor, the maintainer of PEAR DB, on making a database schema portable across DB vendors.  His approach is quite interesting, he uses customised meta tags to describe data types, then runs the meta-schema through a regex-replace script to produce native outputs for the target DB.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/03/db-portability-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advantages of  using the PEAR class naming convention</title>
		<link>http://phpkitchen.com/2005/03/advantages-of-using-the-pear-class-naming-convention/</link>
		<comments>http://phpkitchen.com/2005/03/advantages-of-using-the-pear-class-naming-convention/#comments</comments>
		<pubDate>Wed, 09 Mar 2005 13:59:43 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[pear]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=663</guid>
		<description><![CDATA[There are many good reasons for following the PEAR coding standards which I don&#8217;t have time to go into now, a slightly elabourated version of the &#8216;rules&#8217; is available here, mostly borrowed from the Horde project.
But by far the most convincing reason to use the file naming convention, which means that a class located in [...]]]></description>
			<content:encoded><![CDATA[<p>There are many good reasons for following the <a href="http://pear.php.net/manual/en/standards.php">PEAR coding standards</a> which I don&#8217;t have time to go into now, a slightly elabourated version of the &#8216;rules&#8217; is available <a href="http://horde.phpkitchen.com/chora/co.php?r=1.2&#038;f=%2FCODING_STANDARDS.txt">here</a>, mostly borrowed from the <a href="http://horde.org/">Horde</a> project.
<p>But by far the most convincing reason to use the file naming convention, which means that a class located in your include path like Foo/Bar/Baz.php is called Foo_Bar_Baz, is the ability to take advantage of PHP 5&#8217;s __autoload magic method.</p>
<p>What this means is that if you instantiate the above class, and forgot to require it, it can be located and loaded automatically, from any of hundreds of classes in your include path.  Here&#8217;s the code:</p>
<pre>function __autoload($class)
{
  $filename = str_replace('_', '/', $class) . '.php';
  @require_once $filename;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/03/advantages-of-using-the-pear-class-naming-convention/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Getting pearified with the PEAR Package Manager</title>
		<link>http://phpkitchen.com/2005/03/getting-pearified-with-the-pear-package-manager/</link>
		<comments>http://phpkitchen.com/2005/03/getting-pearified-with-the-pear-package-manager/#comments</comments>
		<pubDate>Wed, 09 Mar 2005 13:45:33 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=662</guid>
		<description><![CDATA[Not suprisingly a host of developments have cropped up following Greg Beaver&#8217;s successful release of PEAR 1.4, including a number of channels, and now pearified.com, as described by Robert Peake&#8217;s article.
If you are one of the majority of people answering &#8216;I don&#8217;t know what the PEAR package manager is&#8217; at the survey below, please read [...]]]></description>
			<content:encoded><![CDATA[<p>Not suprisingly a host of developments have cropped up following Greg Beaver&#8217;s successful release of <a href="http://pear.php.net/package/PEAR">PEAR 1.4</a>, including a <a href="http://pear.phpkitchen.com/">number</a> <a href="http://pear.schlitt.info">of</a> <a href="http://pear.php-tools.net/">channels</a>, and now <a href="http://pearified.com/">pearified.com</a>, as described by <a href="http://www.robertpeake.com/archives/48-Getting-Pearified.html">Robert Peake&#8217;s article.</a></p>
<p>If you are one of the majority of people answering &#8216;I don&#8217;t know what the PEAR package manager is&#8217; at the survey <a href="http://www.phpkitchen.com/pollbooth.php?qid=pearPackageMgr&amp;aid=-1">below</a>, please <a href="http://pear.php.net/manual/en/developers.packagedef.php">read up</a> on this exciting technology and help raise the bar for PHP application deployment.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2005/03/getting-pearified-with-the-pear-package-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
