<?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; PHP</title>
	<atom:link href="http://phpkitchen.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpkitchen.com</link>
	<description>PHP and Web Development News and Tips</description>
	<lastBuildDate>Wed, 30 Dec 2009 13:24:46 +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>PHP shell rocks</title>
		<link>http://phpkitchen.com/2009/11/php-shell-rocks/</link>
		<comments>http://phpkitchen.com/2009/11/php-shell-rocks/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:39:40 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=1348</guid>
		<description><![CDATA[I&#8217;ve written about this before, but since the interactive mode of PHP (php -a) seems to be broken on OS X, I think it&#8217;s worth singing the praises of Jan Kneschke&#8217;s php shell project once again.
It&#8217;s a piece of cake to install the tool with the PEAR installer, and since I last used it 2 great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://phpkitchen.com/wp-content/uploads/2009/12/shell.png"><img class="alignleft size-full wp-image-1378" style="margin: 10px;" title="shell" src="http://phpkitchen.com/wp-content/uploads/2009/12/shell.png" alt="shell" width="324" height="153" /></a>I&#8217;ve written about this <a href="http://phpkitchen.com/2006/06/php-shell-gets-even-better/">before</a>, but since the interactive mode of PHP (php -a) seems to be broken on OS X, I think it&#8217;s worth singing the praises of Jan Kneschke&#8217;s <a href="http://jan.kneschke.de/projects/php-shell/">php shell</a> project once again.</p>
<p>It&#8217;s a piece of cake to install the tool with the PEAR installer, and since I last used it 2 great new features are on offer:</p>
<ul>
<li>tab completion for all (or many) PHP functions and built-in classes and interfaces</li>
<li>handling of fatal errors</li>
</ul>
<p>What a relief to have this working again!  I was ssh-ing onto my Fedora servers just to test out code but of course this became impractical pretty quickly.  And did I mention it runs great on PHP 5.3?</p>
<p>And if you&#8217;re tempted to use the similarly named <a href="http://www.phpsh.org/">phpsh</a> project from the Facebook open src stables, I can confirm this is not an option with the latest version of PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/11/php-shell-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPterror on OXID eShop</title>
		<link>http://phpkitchen.com/2009/08/phpterror-on-oxid-eshop/</link>
		<comments>http://phpkitchen.com/2009/08/phpterror-on-oxid-eshop/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 07:21:21 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[oxid]]></category>
		<category><![CDATA[phpterror]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zomg]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=1325</guid>
		<description><![CDATA[I can&#8217;t believe Zend is publishing articles on OXID eShop, this is definitely some of the worst code I have seen in ages.
As &#8220;the PHP company&#8221; I think Zend ought to at least select projects that have some merit in terms of software design, as surely beginner PHP devs look to Zend for good examples [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-56 alignleft" style="margin: 10px; border: 1px solid black;" title="patterns by directory" src="http://phpterror.files.wordpress.com/2009/08/puremvc-patterns.gif?w=416&amp;h=325" alt="puremvc-patterns" width="291" height="227" />I can&#8217;t believe <a href="http://devzone.zend.com/article/7525-Accepting-Credit-Card-Payments-with-OXID-eShop-CE-and-AlertPay">Zend is publishing articles on OXID eShop</a>, this is definitely some of the worst code I have seen in ages.</p>
<p>As &#8220;the PHP company&#8221; I think Zend ought to at least select projects that have some merit in terms of software design, as surely beginner PHP devs look to Zend for good examples and copy/emulate whatever they showcase.</p>
<p><a href="http://phpterror.wordpress.com/2009/08/26/oxid-esales-the-extend-parade/">PHPterror took a closer look at some of the OXID code</a>, really jaw-dropping stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/08/phpterror-on-oxid-eshop/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introducing PHPterror: bad PHP usage exposed</title>
		<link>http://phpkitchen.com/2009/08/introducing-phpterror-bad-php-usage-exposed/</link>
		<comments>http://phpkitchen.com/2009/08/introducing-phpterror-bad-php-usage-exposed/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 11:51:24 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=1317</guid>
		<description><![CDATA[
A new look at how to create unit tests &#8211; using Photoshop!  Sense of humour required &#8230;
]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-5 aligncenter" style="border: 1px solid black;" title="unit-testing-webdesigner" src="http://phpterror.files.wordpress.com/2009/08/unit-testing-webdesigner.gif?w=502&amp;h=540" alt="unit-testing-webdesigner" width="502" height="540" /></p>
<p>A new look at <a href="http://phpterror.wordpress.com/2009/08/23/puremvc-yes-we-can-unit-test/">how to create unit tests &#8211; using Photoshop</a>!  Sense of humour required &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/08/introducing-phpterror-bad-php-usage-exposed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working with unreliable APIs</title>
		<link>http://phpkitchen.com/2009/07/working-with-unreliable-apis/</link>
		<comments>http://phpkitchen.com/2009/07/working-with-unreliable-apis/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 10:28:53 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=1296</guid>
		<description><![CDATA[
Thanks to Andrew Betts, a PHPlondon regular, for coming up with BadAPI, a service that allows you to simulate misbehaving APIs.
These days there&#8217;s almost no such thing as a web app that&#8217;s not integrating data from various external APIs, and with that integration comes a new set of problems the developer must handle.
From the BadApi [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://phpkitchen.com/wp-content/uploads/2009/07/Picture-1.png"><img class="alignleft size-full wp-image-1297" style="margin: 10px;" title="Bad API" src="http://phpkitchen.com/wp-content/uploads/2009/07/Picture-1.png" alt="Bad API" width="390" height="235" /></a></p>
<p>Thanks to Andrew Betts, a PHPlondon regular, for coming up with <a href="http://badapi.trib.tv/">BadAPI</a>, a service that allows you to simulate misbehaving APIs.</p>
<p>These days there&#8217;s almost no such thing as a web app that&#8217;s not integrating data from various external APIs, and with that integration comes a new set of problems the developer must handle.</p>
<p>From the BadApi website:</p>
<blockquote><p>BadAPI allows you to simulate misbehaving APIs. This is useful if your site relies on the availability of service X, and you want to ensure that any downtime experienced by that service has minimal impact on your own application.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/07/working-with-unreliable-apis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to measure code quality</title>
		<link>http://phpkitchen.com/2009/04/how-to-measure-code-quality/</link>
		<comments>http://phpkitchen.com/2009/04/how-to-measure-code-quality/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 16:27:32 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=1003</guid>
		<description><![CDATA[
This comic perfectly captures that elusive but all-important question: what are the universal hallmarks of good quality code.
]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1002" title="wtfs per min" src="http://phpkitchen.com/wp-content/uploads/2009/04/wtfspermin1.jpg" alt="" width="500" height="471" /></p>
<p>This comic perfectly captures that elusive but all-important question: what are the universal hallmarks of good quality code.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/04/how-to-measure-code-quality/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Taming Netbeans</title>
		<link>http://phpkitchen.com/2009/02/taming-netbeans/</link>
		<comments>http://phpkitchen.com/2009/02/taming-netbeans/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 15:30:55 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=953</guid>
		<description><![CDATA[I&#8217;m really glad to see so many posts by PHP devs switching over to Netbeans &#8211; I don&#8217;t think there&#8217;s any real competition when it comes to a PHP IDE with a decent feature set that&#8217;s not painful to use.  Obviously this last requirement rules out anything based on Eclipse.
But there are a few niggling [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really glad to see so many posts by PHP devs switching over to Netbeans &#8211; I don&#8217;t think there&#8217;s any real competition when it comes to a PHP IDE with a decent feature set that&#8217;s not painful to use.  Obviously this last requirement rules out anything based on Eclipse.</p>
<p>But there are a few niggling hitches remaining in Netbeans that need to be addressed.  Others have written about this already but I&#8217;ll paraphrase:</p>
<ol>
<li>fix the double-click drag select bug</li>
<li>get a more native-looking Mac look and feel</li>
<li>get some themes at least as good as Textmate, eg the default &#8216;blackboard&#8217; theme</li>
</ol>
<p>The first problem is in fact very painful and I haven&#8217;t been able to find any remedies for it.  Netbeans being a Java app, the GUI is implemented in Swing, which by default doesn&#8217;t seem to support the ability to double-click a string of text, then with the mouse button still depressed, drag to select additional words of text.</p>
<p>In any browser, for example, this works as expected: you can click the mouse in the middle of a word, double click to get the whole word, then drag left or right to get the string of words you need.  Not having this feature can be extremely painful because the alternative means you must place, with pixel precision, the cursor at exactly the beginning and end of a word, then click, then drag.</p>
<p>The former system lets you work a lot faster, and in a text selecting business like programming can really cut down on the agro in a day&#8217;s work.</p>
<p>If this problem drives anyone else crazy, or someone knows a workaround I&#8217;d love to hear about it.</p>
<p>For the second point the Netbeans <a rel="bookmark" href="http://eppleton.sharedhost.de/blog/?p=498">6.7 M2</a> release, out today, seems to address some of the issues.  But it has to be said the IDE is still on the ugly side of things, however slightly less bubbly now which I think is an improvement.</p>
<p>For the third point I dug up a theme this afternoon which is a definite improvement over the sparse selection of themes offered with the Netbeans download.  Check out <a href="http://blogs.sun.com/tor/date/20071008">Ruby Dark Pastels</a> &#8211; Mac users beware that the .nbm file gets .jar appended to it when you download the component which makes it unusable.  Simply remove the .jar in the Finder.</p>
<p>The theme is not perfect however, method names are black on a dark blue background, and many code elements (constants, static methods, etc) are white and get match-highlighted in yellow making them unreadable.  Many of these elements are not configurable in the Fonts &amp; Colours preference option.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/02/taming-netbeans/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Is vendor sponsored software certification the way to go?</title>
		<link>http://phpkitchen.com/2009/02/is-vendor-sponsored-software-certification-the-way-to-go/</link>
		<comments>http://phpkitchen.com/2009/02/is-vendor-sponsored-software-certification-the-way-to-go/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 09:19:06 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[employment]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=939</guid>
		<description><![CDATA[In his article Three elements of certification success, Darren Hague, a friend and former colleague, argues that when software vendors are driving the certification process, there is a conflict of interest worth examining.
For example, in the case of Zend PHP certification which has been around for several years now, who ultimately benefits more from the programme &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>In his article <a href="https://www.sdn.sap.com/irj/scn/weblogs?blog=/cs/user/view/cs_msg/42085">Three elements of certification success</a>, Darren Hague, a friend and former colleague, argues that when software vendors are driving the certification process, there is a conflict of interest worth examining.</p>
<p>For example, in the case of <a href="http://www.zend.com/en/services/certification/">Zend PHP certification</a> which has been around for several years now, who ultimately benefits more from the programme &#8211; the software devs or Zend?</p>
<p>Currently Zend certification is one of the only options available to PHP devs who want to get accredited, however.  But judging by general feedback from the community  it would appear that, despite the current certification choices, quality discrepancies between PHP devs on the market can still be pretty &#8230; impressive.</p>
<p>Getting quality programmers is no problem as long as you have a bulletproof hiring process I hear you say &#8211; that&#8217;s another subject <img src='http://phpkitchen.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Darrens&#8217; final comment gives a nice insight into why PHP certification might <em>not</em> be more widespread:</p>
<p style="padding-left: 30px;">The third major element of certification is market demand. Of course, if you are a doctor or a lawyer, then you cannot legally practice unless you are certified, which certainly helps with the demand side of things. Unless professional IT certification is legislated (an unlikely prospect for the forseeable future), then certification will only succeed if customers demand it.</p>
<p>Maybe industry demand for certification is not higher due to the lack of independent certifying bodies?</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/02/is-vendor-sponsored-software-certification-the-way-to-go/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Seagull 0.6.6 Released</title>
		<link>http://phpkitchen.com/2009/01/seagull-066-released/</link>
		<comments>http://phpkitchen.com/2009/01/seagull-066-released/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 05:44:39 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[doris]]></category>
		<category><![CDATA[seagull]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=926</guid>
		<description><![CDATA[A new version of the Seagull framework has been released, download it here.
This is mostly a bugfix release but with some important improvements:

Improved preferences management
Better handling when DB connection is down
Updated FCKeditor to 2.6.3
Added German utf-8 support
Updated Horde_Routes lib
Consolidated translation features (SGL_Translation, SGL_Translation2) into new SGL_Translation3 PHP5 only package
Added media2 module which makes ajax uploads easier [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of the Seagull framework has been released, download it <a href="http://seagullproject.org/download/">here</a>.</p>
<p>This is mostly a bugfix release but with some important improvements:</p>
<ul>
<li>Improved preferences management</li>
<li>Better handling when DB connection is down</li>
<li>Updated FCKeditor to 2.6.3</li>
<li>Added German utf-8 support</li>
<li>Updated Horde_Routes lib</li>
<li>Consolidated translation features (SGL_Translation, SGL_Translation2) into new SGL_Translation3 PHP5 only package</li>
<li>Added media2 module which makes ajax uploads easier and provides media features to the CMS module</li>
</ul>
<p><img class="alignright" title="Doris" src="http://seagullsystems.com/themes/sgl_systems/newsletters/doris_grab.jpg" alt="" width="303" height="227" />The Seagull framework release coincides with a new release of the <a href="http://trac.seagullproject.org/wiki/Modules/Cms">CMS module</a>, and an announcement of <a href="http://beta.dorisapp.com/">Doris, our new productivity app</a>.  You can read the announcement <a href="http://seagullsystems.com/themes/sgl_systems/newsletters/2009_01_27.html">here</a> if you&#8217;re not on the mailing list.</p>
<p>This will be the last release of the CMS module as a mainly developer-focused download.  Version 2.0 of CMS will get its own website, improved developer and enduser documentation, and a Pay as You Go format for those who need the convenience of a hosted service.  Read more about the improvements and try the preview <a href="http://cms.seagullsystems.com/trac/seagull_cms/wiki/ImprovementsInCmsTwo">here</a>.</p>
<p><img class="aligncenter" title="Seagull CMS 2.0" src="http://seagullsystems.com/themes/sgl_systems/newsletters/simplecms.jpg" alt="" width="310" height="194" /></p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/01/seagull-066-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Error Message Control</title>
		<link>http://phpkitchen.com/2009/01/error-message-control/</link>
		<comments>http://phpkitchen.com/2009/01/error-message-control/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:44:55 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[error messages]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql_real_escape_string]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[technorati]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=921</guid>
		<description><![CDATA[
I&#8217;m always amazed to discover quite high profile sites letting goofy errors out in the open.
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-922" style="margin: 10px; border: 1px solid black;" title="Technorati error messages" src="http://phpkitchen.com/wp-content/uploads/2009/01/picture-11.png" alt="Technorati error messages" width="491" height="411" /></p>
<p>I&#8217;m always amazed to discover quite <a href="http://technorati.com/">high profile sites</a> letting goofy errors out in the open.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/01/error-message-control/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Unit tests, new packages, good practice</title>
		<link>http://phpkitchen.com/2009/01/unit-tests-new-packages-good-practice/</link>
		<comments>http://phpkitchen.com/2009/01/unit-tests-new-packages-good-practice/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:12:33 +0000</pubDate>
		<dc:creator>Demian Turner</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://phpkitchen.com/?p=919</guid>
		<description><![CDATA[In case anyone missed it quite a nice PEPr proposal came in the other day, suggesting guidelines for software best practices and writing testable code.
Check out the original article too, it&#8217;s slightly better formatted.
]]></description>
			<content:encoded><![CDATA[<p>In case anyone missed it quite a nice PEPr proposal came in the other day, suggesting <a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=585">guidelines for software best practices and writing testable code</a>.</p>
<p>Check out the <a href="http://misko.hevery.com/code-reviewers-guide/">original article</a> too, it&#8217;s slightly better formatted.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpkitchen.com/2009/01/unit-tests-new-packages-good-practice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
