| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 | 
							- <?php
 
- /**
 
-  *
 
-  * Cube Framework $Id$ QSBif5jV3jDYkGZIgmOH1DJBH/FYrfa6x0gbADiBLmM=
 
-  *
 
-  * @link        http://codecu.be/framework
 
-  * @copyright   Copyright (c) 2017 CodeCube SRL
 
-  * @license     http://codecu.be/framework/license Commercial License
 
-  *
 
-  * @version     1.9 [rev.1.9.01]
 
-  */
 
- /**
 
-  * autoloader class
 
-  */
 
- namespace Cube\Loader;
 
- class Autoloader
 
- {
 
-     /**
 
-      *
 
-      * location of the framework and application libraries
 
-      */
 
-     const LIBRARIES_PATH = 'library';
 
-     /**
 
-      *
 
-      * we will allow mods to override classes
 
-      */
 
-     const MODS_PATH = 'mods';
 
-     /**
 
-      *
 
-      * holds the array of autoloader paths
 
-      *
 
-      * @var array
 
-      */
 
-     private $_paths = array();
 
-     /**
 
-      *
 
-      * the extension for the files to be autoloaded
 
-      *
 
-      * @var string
 
-      */
 
-     private $_fileExtension = '.php';
 
-     /**
 
-      *
 
-      * mods path variable
 
-      *
 
-      * @var string
 
-      */
 
-     private $_modsPath = self::MODS_PATH;
 
-     /**
 
-      *
 
-      * holds an instance of the object
 
-      *
 
-      * @var \Cube\Loader\Autoloader
 
-      */
 
-     private static $_instance;
 
-     /**
 
-      * class constructor
 
-      *
 
-      * set the folder path for the default library
 
-      */
 
-     protected function __construct()
 
-     {
 
-         $this->addPaths(array(
 
-             self::LIBRARIES_PATH,
 
-         ));
 
-     }
 
-     /**
 
-      *
 
-      * returns an instance of the object and creates it if it wasnt instantiated yet
 
-      *
 
-      * @return \Cube\Loader\Autoloader
 
-      */
 
-     public static function getInstance()
 
-     {
 
-         if (!self::$_instance instanceof self) {
 
-             self::$_instance = new self();
 
-         }
 
-         return self::$_instance;
 
-     }
 
-     /**
 
-      *
 
-      * get mods path variable
 
-      *
 
-      * @return string
 
-      */
 
-     public function getModsPath()
 
-     {
 
-         return $this->_modsPath;
 
-     }
 
-     /**
 
-      *
 
-      * set a custom mods path variable
 
-      *
 
-      * @param string $modsPath
 
-      *
 
-      * @return $this
 
-      */
 
-     public function setModsPath($modsPath)
 
-     {
 
-         $this->_modsPath = $modsPath;
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * get autoloader paths
 
-      *
 
-      * @return array
 
-      */
 
-     public function getPaths()
 
-     {
 
-         return $this->_paths;
 
-     }
 
-     /**
 
-      *
 
-      * add multiple autoloader paths
 
-      *
 
-      * @param array $paths
 
-      *
 
-      * @return $this
 
-      */
 
-     public function addPaths($paths = array())
 
-     {
 
-         if (empty($this->_paths)) {
 
-             $this->_paths = (array)$paths;
 
-         }
 
-         else if (!empty($paths)) {
 
-             foreach ($paths as $path) {
 
-                 $this->addPath($path);
 
-             }
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * add single autoloader path
 
-      *
 
-      * @param string $path
 
-      *
 
-      * @return $this
 
-      */
 
-     public function addPath($path)
 
-     {
 
-         if (!in_array($path, $this->_paths)) {
 
-             array_push($this->_paths, $path);
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * the method will parse the data from the 'modules' key in the configuration array, and auto load all classes from the
 
-      * folders defined, plus the classes from the include path (in the include path we have included the
 
-      * folder where the framework is located
 
-      *
 
-      * @return $this
 
-      */
 
-     public function register()
 
-     {
 
-         spl_autoload_register(array($this, 'load'));
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * autoloader method
 
-      *
 
-      * @param string $class
 
-      */
 
-     public function load($class)
 
-     {
 
-         $pathInfo = pathinfo(
 
-             str_replace('\\', DIRECTORY_SEPARATOR, $class));
 
-         $included = false;
 
-         foreach ((array)$this->_paths as $path) {
 
-             if ($included === false) {
 
-                 $classFile = __DIR__ . '/../../../'
 
-                     . $path . DIRECTORY_SEPARATOR
 
-                     . $pathInfo['dirname'] . DIRECTORY_SEPARATOR
 
-                     . $pathInfo['filename'] . $this->_fileExtension;
 
-                 $extendedClassFile = __DIR__ . '/../../../'
 
-                     . $this->getModsPath() . DIRECTORY_SEPARATOR
 
-                     . $path . DIRECTORY_SEPARATOR
 
-                     . $pathInfo['dirname'] . DIRECTORY_SEPARATOR
 
-                     . $pathInfo['filename'] . $this->_fileExtension;
 
-                 if (file_exists($extendedClassFile)) {
 
-                     require_once $extendedClassFile;
 
-                     $included = true;
 
-                 }
 
-                 else if (file_exists($classFile)) {
 
-                     require_once $classFile;
 
-                     $included = true;
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |