Register autoloader.
public register ( $prepend = FALSE ) : self | ||
Результат | self |
/** * Initializes the plugin autoloader. */ public function beforeCompile() { foreach ($this->containerBuilder->parameters['plugins'] as $definition) { $this->loader->addDirectory($definition['location']); } $this->loader->register(); }
/** * @param array $dirs * @return Nette\Loaders\RobotLoader */ public static function createRobotLoader($dirs = array()) { if (!is_array($dirs)) { $dirs = func_get_args(); } $loader = new Nette\Loaders\RobotLoader(); $loader->setCacheStorage(new Nette\Caching\Storages\FileStorage(TEMP_DIR)); $loader->autoRebuild = TRUE; foreach ($dirs as $dir) { $loader->addDirectory($dir); } return $loader->register(); }
/** * * @param string|string[] $dirs absolute paths to directories for robot loading * @return RobotLoader */ public static function createRobotLoader($dirs = []) { if (!is_array($dirs)) { $dirs = func_get_args(); } $loader = new RobotLoader(); $loader->setCacheStorage(new FileStorage(TEMP_DIR)); $loader->autoRebuild = true; foreach ($dirs as $dir) { $loader->addDirectory($dir); } return $loader->register(); }
public static function initialize() { if (self::$initialized) { throw new \Exception("Already initialized"); } $loader = new RobotLoader(); $loader->addDirectory(__DIR__ . "/../../app")->addDirectory(__DIR__); $loader->setCacheStorage(new MemoryStorage()); $loader->register(); $container = (require __DIR__ . "/../../app/bootstrap.php"); $container->removeService("nette.userStorage"); $container->addService("nette.userStorage", new \DummyUserStorage()); self::$container = $container; }
public function loadConfiguration() { $config = $this->_getConfig(); $builder = $this->getContainerBuilder(); foreach ($config['dirs'] as $namespace => $dir) { if (is_dir($dir)) { foreach (Finder::findFiles('*.php')->in($dir) as $key => $file) { $class = $file->getBasename('.php'); $refletion = new \ReflectionClass("{$namespace}\\{$class}"); if (in_array($refletion->getName(), $config['skip'])) { continue; } if ($refletion->isInstantiable()) { $builder->addDefinition($class)->setClass($refletion->getName()); } } } } if (!empty($config['interfaces'])) { $interfaces = array_keys($config['interfaces']); $loader = new Nette\Loaders\RobotLoader(); $loader->setCacheStorage($config['cache']); foreach ($config['interfaces'] as $dir) { if (is_dir($dir)) { $loader->addDirectory($dir); } } $loader->register(); foreach ($loader->getIndexedClasses() as $class => $file) { if (empty(array_intersect(class_implements($class), $interfaces))) { continue; } $refletion = new \ReflectionClass($class); if ($refletion->isInstantiable()) { $builder->addDefinition($class)->setClass($class); } } } }
/** * @return Nette\Loaders\RobotLoader */ public static function createServiceRobotLoader(DI\Container $container, array $options = NULL) { $loader = new Nette\Loaders\RobotLoader(); $loader->autoRebuild = isset($options['autoRebuild']) ? $options['autoRebuild'] : !$container->params['productionMode']; $loader->setCacheStorage($container->cacheStorage); if (isset($options['directory'])) { $loader->addDirectory($options['directory']); } else { foreach (array('appDir', 'libsDir') as $var) { if (isset($container->params[$var])) { $loader->addDirectory($container->params[$var]); } } } $loader->register(); return $loader; }
/** * @return Nette\Loaders\RobotLoader */ public static function createRobotLoader($options) { $loader = new Nette\Loaders\RobotLoader(); $loader->autoRebuild = isset($options['autoRebuild']) ? $options['autoRebuild'] : !Environment::isProduction(); $loader->setCacheStorage(Environment::getService('Nette\\Caching\\ICacheStorage')); if (isset($options['directory'])) { $loader->addDirectory($options['directory']); } else { foreach (array('appDir', 'libsDir') as $var) { if ($dir = Environment::getVariable($var, NULL)) { $loader->addDirectory($dir); } } } $loader->register(); return $loader; }
<?php use Nette\Caching\Storages\FileStorage; use Nette\Loaders\RobotLoader; use Tracy\Debugger; use VersionPress\DI\DIContainer; use VersionPress\DI\VersionPressServices; define('VERSIONPRESS_PLUGIN_DIR', __DIR__); define('VERSIONPRESS_MIRRORING_DIR', WP_CONTENT_DIR . '/vpdb'); define('VERSIONPRESS_TEMP_DIR', VERSIONPRESS_PLUGIN_DIR . '/temp'); define('VERSIONPRESS_ACTIVATION_FILE', VERSIONPRESS_MIRRORING_DIR . '/.active'); require_once VERSIONPRESS_PLUGIN_DIR . '/versionpress-functions.php'; if (defined('DOING_AJAX')) { header("Content-Type: application/json"); } Debugger::enable(Debugger::DEVELOPMENT, VERSIONPRESS_PLUGIN_DIR . '/log'); $robotLoader = new RobotLoader(); $robotLoader->addDirectory(VERSIONPRESS_PLUGIN_DIR . '/src'); $robotLoader->setCacheStorage(new FileStorage(VERSIONPRESS_PLUGIN_DIR . '/temp')); $robotLoader->register(); global $versionPressContainer; $versionPressContainer = DIContainer::getConfiguredInstance();
<?php define('LIBS_DIR', __DIR__ . '/../libs'); require_once LIBS_DIR . '/Nette/loader.php'; require_once LIBS_DIR . '/dump.php'; use Nette\Diagnostics\Debugger as Debug; use Nette\Environment; use Nette\Loaders\RobotLoader; Debug::enable(false); Debug::$strictMode = true; Environment::setVariable('tempDir', __DIR__ . '/tmp'); $r = new RobotLoader(); $r->setCacheStorage(Environment::getContext()->cacheStorage); $r->addDirectory(LIBS_DIR); $r->addDirectory(__DIR__ . '/cases'); $r->register(); require_once __DIR__ . '/TestCase.php';
/** * @return Nette\Loaders\RobotLoader */ public static function createRobotLoader($options) { $loader = new Nette\Loaders\RobotLoader(); $loader->autoRebuild = !Environment::isProduction(); //$loader->setCache(Environment::getCache('Nette.RobotLoader')); $dirs = isset($options['directory']) ? $options['directory'] : array(Environment::getVariable('appDir'), Environment::getVariable('libsDir')); $loader->addDirectory($dirs); $loader->register(); return $loader; }
<?php namespace Achse\Tests; require __DIR__ . '/../vendor/autoload.php'; use Achse\PetrHejna\I18n\Locale; use Nette\Caching\Storages\FileStorage; use Nette\Loaders\RobotLoader; use Tester\Environment; if (!class_exists('Tester\\Assert')) { echo "Install Nette Tester using `composer update --dev`\n"; exit(1); } /** @var string[] $dirs */ $dirs = ['../app', '../libs', '../tests']; $loader = new RobotLoader(); $loader->setCacheStorage(new FileStorage(__DIR__ . '/tmp')); foreach ($dirs as $dir) { $loader->addDirectory(__DIR__ . '/' . $dir); } $loader->register(); date_default_timezone_set(Locale::DEFAULT_TIMEZONE); Environment::setup();
/** * @return array of class => filename */ public function getClasses() { $loader = new Nette\Loaders\RobotLoader(); $loader->setCacheStorage(new Nette\Caching\Storages\FileStorage($this->defaults['tempDir'])); $loader->addDirectory($this->defaults["appDir"]); $loader->register(); return $loader->getIndexedClasses(); }
public function handleInstall() { if ($this->connectionCheckerFactory->invoke() && count($this->getEntityManager()->getConnection()->getSchemaManager()->listTables()) == 0) { if ($this->backup) { $this->deploymentManager->loadBackup($this->backup); } else { /** @var $em \Doctrine\ORM\EntityManager */ $em = $this->getEntityManager(); $tool = new SchemaTool($em); $robotLoader = new RobotLoader(); $robotLoader->setCacheStorage(new MemoryStorage()); $robotLoader->addDirectory($this->context->parameters['modules']['cms']['path'] . '/CmsModule'); $robotLoader->register(); $classes = array(); foreach ($robotLoader->getIndexedClasses() as $item => $a) { $ref = ClassType::from($item); if ($ref->hasAnnotation('ORM\\Entity')) { $classes[] = $em->getClassMetadata('\\' . $item); } } $tool->createSchema($classes); /** @var $installer CmsInstaller */ $installer = $this->context->createInstance('CmsModule\\Module\\Installers\\CmsInstaller'); $installer->install($this->context->venne->moduleManager->modules['cms']); } } $this->redirect('Installation:', array('backup' => NULL)); }