Example #1
0
 public function __construct(ClassLoader $aClassLoader, $sNamespace = null, $nPriority = Package::all)
 {
     $arrClasses = array();
     foreach ($aClassLoader->packageIterator($nPriority) as $aPackage) {
         if ($sNamespace) {
             $sPackageNamespace = $aPackage->ns();
             if ($sNamespace == $sPackageNamespace) {
                 $sSubNs = null;
             } else {
                 if (strpos($sNamespace, $sPackageNamespace . '\\') === 0) {
                     $sSubNs = substr($sNamespace, strlen($sPackageNamespace) + 1);
                 } else {
                     continue;
                 }
             }
         } else {
             $sSubNs = null;
         }
         foreach ($aPackage->classIterator($sSubNs) as $sClass) {
             if (!in_array($sClass, $arrClasses)) {
                 $arrClasses[] = $sClass;
             }
         }
     }
     sort($arrClasses);
     parent::__construct($arrClasses);
 }