Example #1
0
 /**
  * Returns the names of the classes declared in a sourcefile.
  *
  * @param  string  $filename
  * @param  string  $commonPath
  * @param  boolean $clearCache
  * @return array
  */
 public static function getClassesInFile($filename, $commonPath = '', $clearCache = FALSE)
 {
     if ($commonPath != '') {
         $filename = str_replace($commonPath, '', $filename);
     }
     if ($clearCache) {
         self::$fileClassMap = array();
     }
     if (empty(self::$fileClassMap)) {
         $classes = array_merge(get_declared_classes(), get_declared_interfaces());
         foreach ($classes as $className) {
             $class = new ReflectionClass($className);
             if ($class->isUserDefined()) {
                 $file = $class->getFileName();
                 if ($commonPath != '') {
                     $file = str_replace($commonPath, '', $file);
                 }
                 if (!isset(self::$fileClassMap[$file])) {
                     self::$fileClassMap[$file] = array($class);
                 } else {
                     self::$fileClassMap[$file][] = $class;
                 }
             }
         }
     }
     return isset(self::$fileClassMap[$filename]) ? self::$fileClassMap[$filename] : array();
 }
Example #2
0
 /**
  * Returns the names of the classes declared in a sourcefile.
  *
  * @param  string  $filename
  * @param  string  $commonPath
  * @param  boolean $clearCache
  * @return array
  * @access public
  * @static
  */
 public static function getClassesInFile($filename, $commonPath = '', $clearCache = FALSE)
 {
     if ($commonPath != '') {
         $filename = str_replace($commonPath, '', $filename);
     }
     if ($clearCache) {
         self::$fileClassMap = array();
     }
     if (empty(self::$fileClassMap)) {
         $classes = get_declared_classes();
         $count = count($classes);
         for ($i = 0; $i < $count; $i++) {
             $class = new ReflectionClass($classes[$i]);
             if ($class->isUserDefined()) {
                 $file = $class->getFileName();
                 if ($commonPath != '') {
                     $file = str_replace($commonPath, '', $file);
                 }
                 if (!isset(self::$fileClassMap[$file])) {
                     self::$fileClassMap[$file] = array($class);
                 } else {
                     self::$fileClassMap[$file][] = $class;
                 }
             }
         }
     }
     return isset(self::$fileClassMap[$filename]) ? self::$fileClassMap[$filename] : array();
 }