示例#1
0
 /**
  * Returns singleton instance with lazy instantiation.
  * @return NetteLoader
  */
 public static function getInstance()
 {
     if (self::$instance === NULL) {
         self::$instance = new self();
     }
     return self::$instance;
 }
示例#2
0
 /**
  * Register autoloader.
  * @return void
  */
 public function register()
 {
     $cache = $this->getCache();
     $key = $this->getKey();
     if (isset($cache[$key])) {
         $this->list = $cache[$key];
     } else {
         $this->rebuild();
     }
     if (isset($this->list[strtolower(__CLASS__)]) && class_exists('NetteLoader', FALSE)) {
         NetteLoader::getInstance()->unregister();
     }
     parent::register();
 }
示例#3
0
 /**
  * Register autoloader.
  * @return void
  */
 public function register()
 {
     $cache = $this->getCache();
     $data = $cache['data'];
     if ($data['opt'] === array($this->scanDirs, $this->ignoreDirs, $this->acceptFiles)) {
         $this->list = $data['list'];
     } else {
         $this->rebuild();
     }
     if (isset($this->list[strtolower(__CLASS__)]) && class_exists('NetteLoader', FALSE)) {
         NetteLoader::getInstance()->unregister();
     }
     parent::register();
 }
示例#4
0
 /**
  * Handles autoloading of classes or interfaces.
  * @param  string
  * @return void
  */
 public function tryLoad($type)
 {
     if ($this->list === NULL) {
         $this->list = array();
         // prevents cycling
         $cache = $this->getCache();
         $data = $cache['data'];
         $opt = array($this->scanDirs, $this->ignoreDirs, $this->acceptFiles);
         if ($data['opt'] === $opt) {
             $this->list = $data['list'];
         } else {
             $this->rebuild();
             $cache['data'] = array('list' => $this->list, 'opt' => $opt);
         }
         if (isset($this->list[strtolower(__CLASS__)]) && class_exists('NetteLoader', FALSE)) {
             NetteLoader::getInstance()->unregister();
         }
     }
     $type = strtolower($type);
     if (isset($this->list[$type])) {
         if ($this->list[$type] !== FALSE) {
             LimitedScope::load($this->list[$type]);
             self::$count++;
         }
     } else {
         if ($this->autoRebuild === NULL) {
             $this->autoRebuild = !$this->isProduction();
         }
         if ($this->autoRebuild) {
             if (!$this->rebuilded) {
                 $this->rebuild();
             }
             if (isset($this->list[$type])) {
                 LimitedScope::load($this->list[$type]);
                 self::$count++;
             } else {
                 $this->list[$type] = FALSE;
             }
             $cache = $this->getCache();
             $cache['data'] = array('list' => $this->list, 'opt' => array($this->scanDirs, $this->ignoreDirs, $this->acceptFiles));
         }
     }
 }
示例#5
0
/**
 * Check and reset PHP configuration.
 */
if (!defined('PHP_VERSION_ID')) {
    $tmp = explode('.', PHP_VERSION);
    define('PHP_VERSION_ID', $tmp[0] * 10000 + $tmp[1] * 100 + $tmp[2]);
}
if (PHP_VERSION_ID < 50200) {
    throw new Exception('Nette Framework requires PHP 5.2.0 or newer.');
}
@set_magic_quotes_runtime(FALSE);
// @ - deprecated since PHP 5.3.0
/**
 * Load and configure Nette Framework
 */
define('NETTE', TRUE);
define('NETTE_DIR', dirname(__FILE__));
define('NETTE_VERSION_ID', 906);
// v0.9.6
define('NETTE_PACKAGE', 'PHP 5.2');
require_once dirname(__FILE__) . '/Utils/shortcuts.php';
require_once dirname(__FILE__) . '/Utils/exceptions.php';
require_once dirname(__FILE__) . '/Utils/Framework.php';
require_once dirname(__FILE__) . '/Utils/Object.php';
require_once dirname(__FILE__) . '/Utils/ObjectMixin.php';
require_once dirname(__FILE__) . '/Utils/Callback.php';
require_once dirname(__FILE__) . '/Loaders/LimitedScope.php';
require_once dirname(__FILE__) . '/Loaders/AutoLoader.php';
require_once dirname(__FILE__) . '/Loaders/NetteLoader.php';
NetteLoader::getInstance()->register();
示例#6
0
<h1>Nette\Loaders\NetteLoader test</h1>

<pre>
<?php 
require_once '../../Nette/Loaders/NetteLoader.php';
/*use Nette\Debug;*/
$loader = NetteLoader::getInstance();
$loader->base = '../../Nette';
$loader->register();
Debug::dump('class Nette\\Debug successfully loaded');