public static function getAppForModelClass($classname)
 {
     $apps = PackageNames::getAppNames();
     foreach ($apps as $app) {
         // FIXME: si la clase esta definida en un subdir de /model no la encuentra.
         // TODO: que el nombre de la clase se obtenga desde las convenciones, la path tambien.
         $path = "./apps/{$app}/model/{$app}.model.{$classname}.class.php";
         if (file_exists($path)) {
             return $app;
         }
     }
     // Puede ser que este en un subdir y no la encuentre...
     return NULL;
     // No se encontro
 }
示例#2
0
 /**
  * Devuelve una lista con los nombres de las aplicaciones instaladas localmente.
  */
 public function getAppNames()
 {
     return PackageNames::getAppNames();
 }
示例#3
0
 /**
  * Hace el include en las clases ya cargadas.
  * En ludar de tener que ir al filesystem para cargar las clases del modelo,
  * las carga de la memoria.
  */
 public static function refresh()
 {
     $cl = YuppLoader::getInstance();
     // FIXME: no recarga las clases del modelo que estan en subdirectorios!
     foreach ($cl->loadedClasses as $classInfo) {
         $package = $classInfo['package'];
         $path = ".";
         if (PackageNames::isModelPackage($package)) {
             $path = YuppConventions::getModelPath($package);
         } else {
             $path = strtr($package, ".", "/");
         }
         $incPath = $path . "/" . $classInfo['filename'];
         if (!is_file($incPath)) {
             // FIXME: si se tira excepcion, me pasa que al mover archivos me da errores y tengo que borrar la sesion.
             //        igualmente en este caso deberia avisar de alguna forma de que no se encuentra una ruta de inclusion,
             //        por ejemplo haciendo log a disco. Tambien se podria sacar la entrada incorrecta.
             //throw new Exception("YuppLoader::refresh() - ruta de inclusion errada ($incPath)");
         } else {
             include_once $incPath;
         }
     }
 }