<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Zend\Code\Scanner;
use Zend\Code\Exception;
class AggregateDirectoryScanner extends DirectoryScanner
{
/**
* @var bool
*/
protected $isScanned = false;
/**
* @param bool $returnScannerClass
* @todo not implemented
*/
public function getNamespaces($returnScannerClass = false)
{
// @todo
}
/*
public function getUses($returnScannerClass = false)
{}
*/
public function getIncludes($returnScannerClass = false)
{
}
public function getClasses($returnScannerClass = false, $returnDerivedScannerClass = false)
{
$classes = array();
foreach ($this->directories as $scanner) {
$classes += $scanner->getClasses();
}
if ($returnScannerClass) {
foreach ($classes as $index => $class) {
$classes[$index] = $this->getClass($class, $returnScannerClass, $returnDerivedScannerClass);
}
}
return $classes;
}
/**
* @param string $class
* @return bool
*/
public function hasClass($class)
{
foreach ($this->directories as $scanner) {
if ($scanner->hasClass($class)) {
break;
} else {
unset($scanner);
}
}
return (isset($scanner));
}
/**
* @param string $class
* @param bool $returnScannerClass
* @param bool $returnDerivedScannerClass
* @return ClassScanner|DerivedClassScanner
* @throws Exception\RuntimeException
*/
public function getClass($class, $returnScannerClass = true, $returnDerivedScannerClass = false)
{
foreach ($this->directories as $scanner) {
if ($scanner->hasClass($class)) {
break;
} else {
unset($scanner);
}
}
if (!isset($scanner)) {
throw new Exception\RuntimeException('Class by that name was not found.');
}
$classScanner = $scanner->getClass($class);
return new DerivedClassScanner($classScanner, $this);
}
/**
* @param bool $returnScannerClass
*/
public function getFunctions($returnScannerClass = false)
{
$this->scan();
if (!$returnScannerClass) {
$functions = array();
foreach ($this->infos as $info) {
if ($info['type'] == 'function') {
$functions[] = $info['name'];
}
}
return $functions;
}
$scannerClass = new FunctionScanner();
// @todo
}
/*
public static function export()
{
// @todo
}
public function __toString()
{
// @todo
}
*/
}
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
|
|