Changeset View
Changeset View
Standalone View
Standalone View
branches/5.3.x/core/kernel/utility/ClassDiscovery/ClassDetector.php
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | LF |
<?php | |||||
/** | |||||
* @version $Id$ | |||||
* @package In-Portal | |||||
* @copyright Copyright (C) 1997 - 2015 Intechnic. All rights reserved. | |||||
* @license GNU/GPL | |||||
* In-Portal is Open Source software. | |||||
* This means that this software may have been modified pursuant | |||||
* the GNU General Public License, and as distributed it includes | |||||
* or is derivative of works licensed under the GNU General Public License | |||||
* or other free or open source software licenses. | |||||
* See http://www.in-portal.org/license for copyright notices and details. | |||||
*/ | |||||
namespace Intechnic\InPortal\Core\kernel\utility\ClassDiscovery; | |||||
use PhpParser\Node; | |||||
use PhpParser\Node\Stmt\ClassLike; | |||||
use PhpParser\NodeVisitorAbstract; | |||||
defined('FULL_PATH') or die('restricted access!'); | |||||
class ClassDetector extends NodeVisitorAbstract | |||||
{ | |||||
/** | |||||
* List of classes, discovered by the visitor. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $classes = array(); | |||||
/** | |||||
* Class map builder. | |||||
* | |||||
* @var ClassMapBuilder | |||||
*/ | |||||
protected $classMapBuilder; | |||||
/** | |||||
* Creates class detector instance. | |||||
* | |||||
* @param ClassMapBuilder $class_map_builder Class map builder. | |||||
*/ | |||||
public function __construct(ClassMapBuilder $class_map_builder) | |||||
{ | |||||
$this->classMapBuilder = $class_map_builder; | |||||
} | |||||
/** | |||||
* Remembers all encountered classes. | |||||
* | |||||
* @param Node $node Node. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function enterNode(Node $node) | |||||
{ | |||||
if ( $node instanceof ClassLike ) { | |||||
$this->classMapBuilder->addClass((string)$node->namespacedName); | |||||
} | |||||
} | |||||
} |