Lançado Adianti Framework 7.6!
Clique aqui para saber mais
menu

Adianti Solutions

API

Adianti, Framework, PHP, MVC, Active record, Front controller, IDE, RAD, Web, multiplataforma, geração de código, desenvolvimento rápido, relatórios, formulários, listagens, datagrids, gráficos, banco de dados, padrões de projeto, design patterns API do Adianti Framework.
API Docs
code
Selecione a classe

Source for file AdiantiApplicationLoader.php

Documentation is available at AdiantiApplicationLoader.php

  1. <?php
  2. namespace Adianti\Core;
  3.  
  4. use Adianti\Widget\Dialog\TMessage;
  5.  
  6. use RecursiveIteratorIterator;
  7. use RecursiveDirectoryIterator;
  8.  
  9. use Exception;
  10.  
  11. /**
  12.  * Application loader
  13.  *
  14.  * @version    7.4
  15.  * @package    core
  16.  * @author     Pablo Dall'Oglio
  17.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  18.  * @license    http://www.adianti.com.br/framework-license
  19.  */
  20. {
  21.     static $loadedClasses;
  22.     
  23.     /**
  24.      * Return application loaded classes
  25.      */
  26.     public static function getLoadedClasses()
  27.     {
  28.         return self::$loadedClasses;
  29.     }
  30.     
  31.     /**
  32.      * Return if the class was already loaded by this loader
  33.      */
  34.     public static function isLoadedClass($class)
  35.     {
  36.         return !empty(self::$loadedClasses[$class]);
  37.     }
  38.     
  39.     /**
  40.      * Application autoloder
  41.      */
  42.     public static function autoload($class)
  43.     {
  44.         // echo "&nbsp;&nbsp;App loader $class<br>";
  45.         $folders array();
  46.         $folders['app/model';
  47.         $folders['app/control';
  48.         $folders['app/view';
  49.         $folders['app/lib';
  50.         $folders['app/helpers';
  51.         $folders['app/service';
  52.         
  53.         // search in app root
  54.         if (file_exists("{$class}.class.php"))
  55.         {
  56.             require_once "{$class}.class.php";
  57.             self::$loadedClasses[$classtrue;
  58.             return TRUE;
  59.         }
  60.         
  61.         // search in app root
  62.         if (file_exists("{$class}.php"))
  63.         {
  64.             require_once "{$class}.php";
  65.             self::$loadedClasses[$classtrue;
  66.             return TRUE;
  67.         }
  68.         
  69.         foreach ($folders as $folder)
  70.         {
  71.             if (file_exists("{$folder}/{$class}.class.php"))
  72.             {
  73.                 require_once "{$folder}/{$class}.class.php";
  74.                 self::$loadedClasses[$classtrue;
  75.                 return TRUE;
  76.             }
  77.             if (file_exists("{$folder}/{$class}.php"))
  78.             {
  79.                 require_once "{$folder}/{$class}.php";
  80.                 self::$loadedClasses[$classtrue;
  81.                 return TRUE;
  82.             }
  83.             else if (file_exists("{$folder}/{$class}.iface.php"))
  84.             {
  85.                 require_once "{$folder}/{$class}.iface.php";
  86.                 self::$loadedClasses[$classtrue;
  87.                 return TRUE;
  88.             }
  89.             else
  90.             {
  91.                 try
  92.                 {
  93.                     if (file_exists($folder))
  94.                     {
  95.                         foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($folder),
  96.                                                                RecursiveIteratorIterator::SELF_FIRSTas $entry)
  97.                         {
  98.                             if (is_dir($entry))
  99.                             {
  100.                                 if (file_exists("{$entry}/{$class}.class.php"))
  101.                                 {
  102.                                     require_once "{$entry}/{$class}.class.php";
  103.                                     self::$loadedClasses[$classtrue;
  104.                                     return TRUE;
  105.                                 }
  106.                                 else if (file_exists("{$entry}/{$class}.php"))
  107.                                 {
  108.                                     require_once "{$entry}/{$class}.php";
  109.                                     self::$loadedClasses[$classtrue;
  110.                                     return TRUE;
  111.                                 }
  112.                                 else if (file_exists("{$entry}/{$class}.iface.php"))
  113.                                 {
  114.                                     require_once "{$entry}/{$class}.iface.php";
  115.                                     self::$loadedClasses[$classtrue;
  116.                                     return TRUE;
  117.                                 }
  118.                             }
  119.                         }
  120.                     }
  121.                 }
  122.                 catch(Exception $e)
  123.                 {
  124.                     new TMessage('error'$e->getMessage());
  125.                 }
  126.             }
  127.         }
  128.     }
  129. }