<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>baaaaaad php usage exposed</title>
	<atom:link href="http://phpterror.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpterror.wordpress.com</link>
	<description>Your code makes me wanna puke? Don&#039;t expect me to be nice ...</description>
	<lastBuildDate>Thu, 27 Aug 2009 14:50:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='phpterror.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>baaaaaad php usage exposed</title>
		<link>http://phpterror.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://phpterror.wordpress.com/osd.xml" title="baaaaaad php usage exposed" />
	<atom:link rel='hub' href='http://phpterror.wordpress.com/?pushpress=hub'/>
		<item>
		<title>oxid esales &#8211; show me your 94% Unit Test coverage!</title>
		<link>http://phpterror.wordpress.com/2009/08/26/oxid-esales-show-me-your-94-unit-test-coverage/</link>
		<comments>http://phpterror.wordpress.com/2009/08/26/oxid-esales-show-me-your-94-unit-test-coverage/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 08:54:04 +0000</pubDate>
		<dc:creator>Arno Schneider</dc:creator>
				<category><![CDATA[Nachgetreten]]></category>
		<category><![CDATA[OXID]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://phpterror.wordpress.com/?p=83</guid>
		<description><![CDATA[Zend, PHP-Architect and all you others out there praising open source projects&#8230; can you please give more priority to really quality work? I was desperately searching for OXID esales Unit Tests after checking out their community edition from svn. Or are the Unit Tests only accessible for paying customers? The blog post claiming the 93.x [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=83&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Zend, PHP-Architect and all you others out there praising open source projects&#8230; can you please give more priority to really quality work?</strong></p>
<p>I was desperately searching for OXID esales Unit Tests after checking out their community edition from svn. <strong>Or are the Unit Tests only accessible for paying customers?</strong></p>
<p><a href="http://www.oxid-esales.com/en/news/blog/oxid-eshop-quality-report-raised-code-coverage-9334" target="_blank">The blog post claiming the 93.x % code coverage:</a></p>
<p><img class="alignnone size-full wp-image-93" style="border:1px solid black;" title="code-coverage" src="http://phpterror.files.wordpress.com/2009/08/code-coverage2.gif?w=450&#038;h=385" alt="code-coverage" width="450" height="385" /></p>
<p>While searching for it, I came across this forum entry:</p>
<p><a href="http://www.oxid-esales.com/forum/showthread.php?p=12831" target="_blank">http://www.oxid-esales.com/forum/showthread.php?p=12831</a></p>
<p>Which makes me kind of happy, since I am not the only one who does not just rely on the PHP community <strong>back patting</strong> the &#8220;great&#8221; open source projects like WordPress .. and now OXID ?</p>
<p>Curious what the OXID people will reply to this?</p>
<p><strong>I am waiting &#8230; also for Zend and PHP Architect on this topic&#8230;.</strong></p>
<a name="pd_a_1923006"></a><div class="PDS_Poll" id="PDI_container1923006" style="display:inline-block;float:;"></div><div id="PD_superContainer"></div><script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/1923006.js"></script>
		<noscript>
		<a href="http://polldaddy.com/poll/1923006/">View This Poll</a><br/><span style="font-size:10px;"><a href="http://polldaddy.com/features-surveys/">online surveys</a></span>
		</noscript>
<br />Posted in Nachgetreten, OXID, php  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpterror.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpterror.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpterror.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpterror.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpterror.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpterror.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpterror.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpterror.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=83&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpterror.wordpress.com/2009/08/26/oxid-esales-show-me-your-94-unit-test-coverage/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f29ef78ea2e42393a11c9f36e8ced83c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arnoschn</media:title>
		</media:content>

		<media:content url="http://phpterror.files.wordpress.com/2009/08/code-coverage2.gif" medium="image">
			<media:title type="html">code-coverage</media:title>
		</media:content>
	</item>
		<item>
		<title>oxid esales &#8211; The extend parade!</title>
		<link>http://phpterror.wordpress.com/2009/08/26/oxid-esales-the-extend-parade/</link>
		<comments>http://phpterror.wordpress.com/2009/08/26/oxid-esales-the-extend-parade/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 06:04:32 +0000</pubDate>
		<dc:creator>Arno Schneider</dc:creator>
				<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[design-patterns?]]></category>
		<category><![CDATA[OXID]]></category>

		<guid isPermaLink="false">http://phpterror.wordpress.com/?p=54</guid>
		<description><![CDATA[In oxid esales everybody likes to extend everything. Its a bunch of happy ox-classes that just love each other, hug eachother and extend, make out the whooooooole day. A simple example oxI18n extends oxBase extends oxSuperCfg Ok, I understand that you want every happy oxid-super-object to be able to read, write, delete the config, right? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=54&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.oxid-esales.com" target="_blank">oxid esales</a> everybody likes to extend everything.</p>
<p><strong>Its a bunch of happy ox-classes that just love each other, hug eachother and extend, make out the whooooooole day.</strong></p>
<h2>A simple example</h2>
<p><strong>oxI18n extends oxBase extends oxSuperCfg</strong></p>
<p>Ok, I understand that you want every happy oxid-super-object to be able to read, write, delete the config, right?</p>
<p>But what the heck are you doing? <strong>Did you guys ever hear about design patterns?</strong>.</p>
<p>Maybe you should take a look at our friends from <a href="http://svn.puremvc.org/PureMVC_PHP/trunk/org/puremvc/php/patterns/" target="_blank">pureMVC</a>. They have their patterns well organized in an extra folder:</p>
<p><img class="alignnone size-full wp-image-56" style="border:1px solid black;" title="puremvc-patterns" src="http://phpterror.files.wordpress.com/2009/08/puremvc-patterns.gif?w=416&#038;h=325" alt="puremvc-patterns" width="416" height="325" /></p>
<h2>It gets even better: The Super-Extender</h2>
<p>When you want to create an oxoutput object with the following<strong>??modules??</strong> loaded:</p>
<p><em>sub/suboutput1&amp;sub/suboutput2&amp;sub/suboutput3</em></p>
<p>it magically creates / extends / parties with your classes!</p>
<p>It uses a kind of extension g*ngb*ng function to hook up everyone with everything:</p>
<pre><code>
public function getClassName( $sClassName )
{
        $aModules = $this-&gt;getConfig()-&gt;getConfigParam( 'aModules' );
        if ( is_array( $aModules ) &amp;&amp;
          array_key_exists( $sClassName, $aModules ) ) {
            //multiple inheritance implementation
            //in case we have multiple modules:
            //like oxoutput
               //=&gt; sub/suboutput1&amp;sub/suboutput2&amp;sub/suboutput3
            $aClassChain = explode( "&amp;", $aModules[$sClassName] );

            $sParent = $sClassName;

            //security: just preventing string termination
            $sParent = str_replace(chr(0), '', $sParent);

            //building middle classes if needed
            $sClassName =
            $this-&gt;_makeSafeModuleClassParents( $aClassChain, $sParent );
    }

 // check if there is a path, if yes, remove it
 $sClassName = basename( $sClassName );

 return $sClassName;
}

....

/**
 * Creates middle classes if needed.
*
* @param array  $aClassChain Module names
* @param string $sBaseModule Oxid base class
*
* @throws oxSystemComponentException missing system
*             component exception
*
* @return string
*/
private function _makeSafeModuleClassParents( $aClassChain, $sBaseModule )
{
  $myConfig = $this-&gt;getConfig();
  $sParent = $sBaseModule;

  //building middle classes if needed
  foreach ($aClassChain as $sModule) {
     //creating middle classes
     //e.g. class suboutput1_parent extends oxoutput {}
     //     class suboutput2_parent extends suboutput1 {}
     //$sModuleClass = $this-&gt;getClassName($sModule);

    //security: just preventing string termination
    $sModule = str_replace(chr(0), '', $sModule);

    //get parent and module class names from sub/suboutput2
    $sParentClass = basename($sParent);
    $sModuleClass = basename($sModule);

    //P
    //$sInitClass = "class ".$sModuleClass."_parent extends $sParentClass
    //{ function ".$sModuleClass."_parent(){
    // return ".$sParentClass."::".$sParentClass."();} }";
    $sInitClass = "class ".$sModuleClass."_parent extends $sParentClass {}";

    //initializing middle class
    if (!class_exists($sModuleClass."_parent", false)) {
       eval($sInitClass);
    }
   $sParentPath = $myConfig-&gt;getConfigParam( 'sShopDir' ).
                              "/modules/".$sModule.".php";

   //including original file
   if ( file_exists( $sParentPath ) ) {
	require_once $sParentPath;
   } elseif ( !class_exists( $sModuleClass ) ) {
        //to avoid problems with unitest and only throw a
        // exception if class does not exists MAFI
	$oEx = new oxSystemComponentException();
	$oEx-&gt;setMessage('EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND');
	$oEx-&gt;setComponent($sModule);
   }

   $sParent = $sModule;
 }

   //returning the last module from the chain
   $sClassName = $aClassChain[count($aClassChain) - 1];
   return $sClassName;

}
</code></pre>
<p>So &#8230; with all the magic party stuff you end up having created / included these classes, all done by their wonderful __autload function:</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<ul>
<li>class oxoutput extends oxSuperCfg { &#8230; }</li>
<li>class suboutput1_parent extends oxoutput {}</li>
<li>class suboutput2_parent extends suboutput1 {}</li>
<li>class suboutput3_parent extends suboutput2 {}</li>
</ul>
<h2>But what the hell is this stuff for?</h2>
<p>A module like MyOrder extends MyOrder_parent. <strong>For what? Somebody enlighten me!</strong></p>
<p><strong>You extend non-existing classes just for the sake of creating them from the magic __autoload function, is that it?</strong></p>
<p><strong>Related post:</strong></p>
<p><a href="http://phpterror.wordpress.com/2009/08/26/oxid-esales-show-me-your-94-unit-test-coverage/">oxid esales – show me your 94% Unit Test coverage!</a></p>
<br />Posted in design-patterns?, ecommerce, frameworks, OXID, PureMVC  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpterror.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpterror.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpterror.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpterror.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpterror.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpterror.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpterror.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpterror.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=54&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpterror.wordpress.com/2009/08/26/oxid-esales-the-extend-parade/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f29ef78ea2e42393a11c9f36e8ced83c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arnoschn</media:title>
		</media:content>

		<media:content url="http://phpterror.files.wordpress.com/2009/08/puremvc-patterns.gif" medium="image">
			<media:title type="html">puremvc-patterns</media:title>
		</media:content>
	</item>
		<item>
		<title>Trac does not like PHP namespaces either&#8230;.</title>
		<link>http://phpterror.wordpress.com/2009/08/25/trac-does-not-like-php-namespaces-either/</link>
		<comments>http://phpterror.wordpress.com/2009/08/25/trac-does-not-like-php-namespaces-either/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 04:31:29 +0000</pubDate>
		<dc:creator>Arno Schneider</dc:creator>
				<category><![CDATA[namespaces]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://phpterror.wordpress.com/?p=39</guid>
		<description><![CDATA[http://trac.doctrine-project.org/browser/trunk/lib/Doctrine/Common/ClassLoader.php Posted in namespaces, php Tagged: namespaces<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=39&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-47" title="ns2" src="http://phpterror.files.wordpress.com/2009/08/ns22.gif?w=450" alt="ns2" /></p>
<p><a href="http://trac.doctrine-project.org/browser/trunk/lib/Doctrine/Common/ClassLoader.php">http://trac.doctrine-project.org/browser/trunk/lib/Doctrine/Common/ClassLoader.php</a></p>
<br />Posted in namespaces, php Tagged: namespaces <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpterror.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpterror.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpterror.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpterror.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpterror.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpterror.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpterror.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpterror.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=39&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpterror.wordpress.com/2009/08/25/trac-does-not-like-php-namespaces-either/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f29ef78ea2e42393a11c9f36e8ced83c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arnoschn</media:title>
		</media:content>

		<media:content url="http://phpterror.files.wordpress.com/2009/08/ns22.gif" medium="image">
			<media:title type="html">ns2</media:title>
		</media:content>
	</item>
		<item>
		<title>__sh*tload to the rescue!</title>
		<link>http://phpterror.wordpress.com/2009/08/23/puremvc-autoload-to-the-rescue/</link>
		<comments>http://phpterror.wordpress.com/2009/08/23/puremvc-autoload-to-the-rescue/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 15:36:51 +0000</pubDate>
		<dc:creator>Arno Schneider</dc:creator>
				<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Nachgetreten]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://phpterror.wordpress.com/?p=22</guid>
		<description><![CDATA[How do you think the PureMVC guy tests this autoload function? /** * Checks all paths defined in $_includePaths for * the existence of $class and loads $class if found. * * @param string $class The class to search for. */ function __autoload( $class ) { $_includePaths = array( PMVC_BASE_DIR . '/org/puremvc/php/core', PMVC_BASE_DIR . '/org/puremvc/php/interfaces', [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=22&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>How do you think the PureMVC guy tests this autoload function?</p>
<pre style="border:1px dotted black;width:100%;padding:10px;">/**
* Checks all paths defined in $_includePaths for
* the existence of $class and loads $class if found.
*
* @param string $class The class to search for.
*/
function __autoload( $class )
{
    $_includePaths = array(
                       PMVC_BASE_DIR . '/org/puremvc/php/core',
                       PMVC_BASE_DIR . '/org/puremvc/php/interfaces',
                       PMVC_BASE_DIR . '/org/puremvc/php/patterns',
                       PMVC_BASE_DIR . '/org/puremvc/php/patterns/command',
                       PMVC_BASE_DIR . '/org/puremvc/php/patterns/facade',
                       PMVC_BASE_DIR . '/org/puremvc/php/patterns/mediator',
                       PMVC_BASE_DIR . '/org/puremvc/php/patterns/observer',
                       PMVC_BASE_DIR . '/org/puremvc/php/patterns/proxy',
     );

    $classPath = get_include_path();
    $classPathTokens = explode( ':', $classPath );

    $classXtn = '.php';

    foreach ($classPathTokens as $prefix)
    {
        foreach ($_includePaths as $includePath)
        {
             $path = "$includePath/$class$classXtn";
             if (file_exists($path))
             {
                require_once $path;
                return;
             }
       }
   }

}</pre>
<p>Taken from: <a href="http://svn.puremvc.org/PureMVC_PHP/tags/1.0.2/puremvc_autoloader.php" target="_blank">http://svn.puremvc.org/PureMVC_PHP/tags/1.0.2/puremvc_autoloader.php</a></p>
<p><strong>Dude, did you know that your get_include_path() is not used at all in this autoload function?</strong></p>
<h2>But here, I unit tested it for you</h2>
<p><a href="http://svn.puremvc.org/PureMVC_PHP/tags/1.0.2/puremvc_autoloader.php"><img class="alignnone size-full wp-image-29" style="border:1px solid black;" title="autoload unit test" src="http://phpterror.files.wordpress.com/2009/08/autoload-test.gif?w=450&#038;h=261" alt="autoload unit test" width="450" height="261" /></a></p>
<p>If you don&#8217;t get this joke <a href="http://phpterror.wordpress.com/2009/08/23/puremvc-yes-we-can-unit-test/">see here</a></p>
<br />Posted in frameworks, Nachgetreten, PureMVC  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpterror.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpterror.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpterror.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpterror.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpterror.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpterror.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpterror.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpterror.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=22&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpterror.wordpress.com/2009/08/23/puremvc-autoload-to-the-rescue/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f29ef78ea2e42393a11c9f36e8ced83c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arnoschn</media:title>
		</media:content>

		<media:content url="http://phpterror.files.wordpress.com/2009/08/autoload-test.gif" medium="image">
			<media:title type="html">autoload unit test</media:title>
		</media:content>
	</item>
		<item>
		<title>Yes we can Unit Test!</title>
		<link>http://phpterror.wordpress.com/2009/08/23/puremvc-yes-we-can-unit-test/</link>
		<comments>http://phpterror.wordpress.com/2009/08/23/puremvc-yes-we-can-unit-test/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 15:13:20 +0000</pubDate>
		<dc:creator>Arno Schneider</dc:creator>
				<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://phpterror.wordpress.com/?p=3</guid>
		<description><![CDATA[The PHP Community learned a new buzz word. PHPUnit And some early-adopters in the php world were brave enough to actually use this new thing called unit testing in their opensource projects and expose its usage to the outside world. Unit Testing is good. Unit Tests are necessary. Unit Tests can improve the quality. Unit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=3&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The PHP Community learned a new buzz word.</p>
<h2>PHPUnit</h2>
<p>And some early-adopters in the php world were brave enough to actually use this new thing called unit testing in their opensource projects and expose its usage to the outside world.</p>
<ul>
<li><strong>Unit Testing is good.</strong></li>
<li><strong> Unit Tests are necessary. </strong></li>
<li><strong> Unit Tests can improve the quality. </strong></li>
<li><strong>Unit Tests add trust to your open source project.</strong></li>
</ul>
<p>
Something like that must have been on the mind of the guy who unit tested the PureMVC PHP Port. He was so proud of his achievement, being an early adopter of unit tests in php, that he wanted to communicate the fact that his framework is quite well unit-tested:
</p>
<p><a href="http://trac.puremvc.org/PureMVC_PHP_UnitTests" target="_blank"><img class="size-full wp-image-4 alignleft" style="border:1px solid black;margin-top:20px;margin-bottom:20px;display:block;" title="Yes we can Unit Test!" src="http://phpterror.files.wordpress.com/2009/08/proof-of-tests.gif?w=450&#038;h=571" alt="Yes we can Unit Test!" width="450" height="571" /></a></p>
<p>
You cannot believe what you are seeing? Have a look for yourself: <a href="http://trac.puremvc.org/PureMVC_PHP_UnitTests" target="_blank">http://trac.puremvc.org/PureMVC_PHP_UnitTests</a>
</p>
<h2 style="clear:left;display:block;margin-top:20px;">Now, was this unit testing done by a web designer?</h2>
<p>Seems like it, and we have some exclusive coverage of his daily unit testing work:</p>
<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&#038;h=540" alt="unit-testing-webdesigner" width="502" height="540" /></p>
<h2>But how bad is the code really?</h2>
<p>I tell ya&#8230;. there is only so much a man can take. See for yourself: <a href="http://svn.puremvc.org/PureMVC_PHP/tags/1.0.2/" target="_blank">http://svn.puremvc.org/PureMVC_PHP/tags/1.0.2/</a></p>
<h2>Found anything useful in these Unit Test?</h2>
<p>
Please leave a comment if you think you made some sense out of it!</p>
<br />Posted in frameworks, PureMVC  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpterror.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpterror.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpterror.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpterror.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpterror.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpterror.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpterror.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpterror.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpterror.wordpress.com&amp;blog=9130866&amp;post=3&amp;subd=phpterror&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpterror.wordpress.com/2009/08/23/puremvc-yes-we-can-unit-test/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f29ef78ea2e42393a11c9f36e8ced83c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arnoschn</media:title>
		</media:content>

		<media:content url="http://phpterror.files.wordpress.com/2009/08/proof-of-tests.gif" medium="image">
			<media:title type="html">Yes we can Unit Test!</media:title>
		</media:content>

		<media:content url="http://phpterror.files.wordpress.com/2009/08/unit-testing-webdesigner.gif" medium="image">
			<media:title type="html">unit-testing-webdesigner</media:title>
		</media:content>
	</item>
	</channel>
</rss>
