123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- class PHPUnitUtil
- {
- protected static $definedClasses = array();
-
-
- static function getPackageName($classname)
- {
- $reflect = new ReflectionClass($classname);
- if (preg_match('/@package[\s]+([\.\w]+)/', $reflect->getDocComment(), $matches))
- {
- return $matches[1];
- }
- else
- {
- return "default";
- }
- }
-
-
- public static function getSubpackageName($classname)
- {
- $reflect = new ReflectionClass($classname);
- if (preg_match('/@subpackage[\s]+([\.\w]+)/', $reflect->getDocComment(), $matches)) {
- return $matches[1];
- } else {
- return null;
- }
- }
-
- public static function getClassFromFileName($filename)
- {
- $filename = basename($filename);
-
- $rpos = strrpos($filename, '.');
-
- if ($rpos != -1)
- {
- $filename = substr($filename, 0, $rpos);
- }
-
- return $filename;
- }
-
- public static function getDefinedClasses($filename, $classpath = NULL)
- {
- $filename = realpath($filename);
-
- if (!file_exists($filename))
- {
- throw new Exception("File '" . $filename . "' does not exist");
- }
-
- if (isset(self::$definedClasses[$filename]))
- {
- return self::$definedClasses[$filename];
- }
-
- Phing::__import($filename, $classpath);
- $declaredClasses = get_declared_classes();
-
- foreach ($declaredClasses as $classname)
- {
- $reflect = new ReflectionClass($classname);
-
- self::$definedClasses[$reflect->getFilename()][] = $classname;
-
- if (is_array(self::$definedClasses[$reflect->getFilename()]))
- {
- self::$definedClasses[$reflect->getFilename()] = array_unique(self::$definedClasses[$reflect->getFilename()]);
- }
- }
-
- if (isset(self::$definedClasses[$filename]))
- {
- return self::$definedClasses[$filename];
- }
- else
- {
- return array();
- }
- }
- }
|