private function _displayFolder()
 {
     $registry = Zend_Registry::getInstance();
     $request = $this->getRequest();
     $path = $registry->configuration->testcase->dir . '/' . $request->getParam(2);
     $rpath = realpath($path);
     $view = Zend_Registry::getInstance()->view;
     $template = 'view/folder.tpl';
     // using a realpath as the cahe id, so the only valid choices are valid paths
     if ($rpath === false) {
         /** Use the default dir is the requested path was incorrect
          * @todo P1: What to do if the default testcase dir is incorrect? */
         $rpath = realpath($registry->configuration->testcase->dir . '/');
         $view->assign('warning', 'Requested path was not found. Using default path.');
     }
     $tc = new WidgetTC($rpath);
     $it = $tc->getFileIterator(WidgetTC::FORCE_WIDGET, array('.svn', '.cvs'));
     $view->set_caching($registry->configuration->render->caching);
     // We set the cache ID as the requested path, so every directory list is cached
     $cache_id = md5($request->getParam(2));
     if (!$view->is_cached($template, $cache_id)) {
         $view->base_tc_path = realpath($registry->configuration->testcase->dir . '/');
         $view->iterator = $it;
         $view->basedir = $registry->configuration->webapp->basedir;
         $view->current_path = $request->getParam(2);
         $view->parentdir = $view->current_path . '/..';
         if (!$tc->valid()) {
             $view->warning = 'The current path does not point to a valid widget';
         } else {
             $view->tc = $tc;
         }
     }
     echo $view->render($template, $cache_id);
 }
 /**
  * Function to decide whether an element of the inner iterator 
  * should be accessible through the Filteriterator.
  * @todo Log a debug message, trying to accept $path
  */
 public function accept()
 {
     $path = $this->current()->getPathName();
     $w = new WidgetTC($path);
     $accept = $w->valid();
     //$log = '';
     //Log::log($log,Log::DEBUG);
     return $accept;
 }
 public function displayAction()
 {
     $registry = Zend_Registry::getInstance();
     $view = $registry->view;
     $request = $this->getRequest();
     /*
      * $request->getParam(1) returns the path requested
      * Example: '/foo' from 'www.example.com/list/foo'
      * (It starts with a '/' so it will separate it from the testcase dir)
      */
     $path = $registry->configuration->testcase->dir . $request->getParam(1);
     $rpath = realpath($path);
     $template = 'list/testcases.tpl';
     // using a realpath as the cahe id, so the only valid choices are valid paths
     if ($rpath === false) {
         /** Use the default dir is the requested path was incorrect
          * @todo P1: What to do if the default testcase dir is incorrect? */
         $rpath = realpath($registry->configuration->testcase->dir . '/');
         $view->warning = 'Requested path was not found. Using default path.';
     }
     $tc = new WidgetTC($rpath);
     if ($tc->valid()) {
         // The current is a single testcase
         $wit = array($tc->getFileIterator());
     } else {
         // display a full list
         // Makes a (limited) directory iterator
         $it = new LimitRecursiveIteratorIterator(new DirectoryOnlyIterator($rpath, DirectoryOnlyIterator::IGNORE_SVN | DirectoryOnlyIterator::IGNORE_CVS), RecursiveIteratorIterator::SELF_FIRST, $registry->configuration->testcase->max_scan_dir);
         // Wraps a filteriterator over the recursive iterator
         // and now returns only widget testcases
         $wit = new WidgetIterator($it);
     }
     // Use the realpath as the cache id. This will make sure we can't get infinite
     // caches, since the max number is number of folders within the testcase dir
     $cache_id = $rpath;
     // Set caching if it is set in the ini file
     $view->set_caching($registry->configuration->render->caching);
     if (!$view->is_cached($template, $cache_id)) {
         $view->base_tc_path = $registry->configuration->testcase->dir . '/';
         $view->iterator = $wit;
         $view->basedir = $registry->configuration->webapp->basedir;
         $view->current_path = $request->getParam(2);
         // getParam(2) returns path without prefixing '/'
     }
     echo $view->render($template, $cache_id);
 }
<pre><?php 
//set_include_path(get_include_path() . PATH_SEPARATOR . 'c:\\xampp\\htdocs\\wtf2\\');
require_once '../autoload.php';
$time_start = microtime(true);
try {
    $path = 'C:\\xampp\\htdocs\\wtf\\';
    $it = new LimitRecursiveIteratorIterator(new DirectoryOnlyIterator($path, DirectoryOnlyIterator::IGNORE_SVN | DirectoryOnlyIterator::IGNORE_CVS), RecursiveIteratorIterator::SELF_FIRST, 10);
    $n = 1;
    foreach ($it as $e) {
        $w = new WidgetTC($e->getPathName());
        if ($w->valid()) {
            echo $n++ . '. <b>' . $e->getPathName() . '</b><br />';
        }
    }
} catch (Exception $e) {
    //echo 'No files found!<br/>';
    echo $e;
}
$time_end = microtime(true);
echo '<br/><b>Script completed in ' . ($time_end - $time_start) . 'ms</b>';
?>
</pre>