Ejemplo n.º 1
0
 /** Run through all classes and cache the relevant TLO/TLORelationship classes **/
 public static function classDetect()
 {
     if (!is_null(self::$_tlo_classes)) {
         return;
     }
     self::$_tlo_classes = array();
     self::$_tlo_relationship_classes = array();
     foreach (get_declared_classes() as $class) {
         $reflect = new ReflectionClass($class);
         if ($reflect->isAbstract()) {
             continue;
         }
         if (is_subclass_of($class, 'TLO')) {
             self::$_tlo_classes[] = $class;
         }
         if (is_subclass_of($class, 'TLORelationship')) {
             try {
                 $class::relationOne();
                 $many_side = $class::relationMany();
             } catch (TLOException $e) {
                 throw new TLOException('Class "%s" does not have both static functions "relationMany" and "relationOne" set up', $class);
             }
             if (!isset(self::$_tlo_relationship_classes[$many_side])) {
                 self::$_tlo_relationship_classes[$many_side] = array();
             }
             self::$_tlo_relationship_classes[$many_side][] = $class;
         }
     }
 }