IServiceLocator->addService a RobotLoader – de to skloubit?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mentor
Člen | 7
+
0
-

Zdravim,
nezvyknu moc postovat ale mam problem :-)

Lze pouzit nejaky konfiguracni soubor pro RobotLoader?
lze RobotLoader ako sluzbu registrovat nebo se o to uz postaral loader.php v mem kode?

Chtel bych si udrzat handle napr.pro vylistovani adresaru ze kterych se loadovalo. chci dovolit pripadnym dalsim aplikacim aby si ze sveho environmentu mohli sahnout na adresare ktere si prali autoloadit, pripadne vyuzit budouci rebuild nebo nejakou future feature ;)

aktualni stav:

require_once LIBS_DIR . '/Nette/loader.php';
// Enable Debugger
Debug::enable();

// Main configuration file
$config = APP_DIR.'/config.ini';

// Select current environment
$env = Config::fromFile($config,'env')->const['current'];

Environment::setName($env);
unset($env);

// Initialize current environment
Environment::loadConfig($config);
unset($config);


/** tohle je nacitani adresaru pro robota z config.ini (robota bych  chtel pridat do environmentu)
 * /

// Autoloading of user-application classes in curent environment
$loader  = new RobotLoader();
$loader->addDirectory(Environment::getConfig('robot'));
$loader->register();
unset($loader);

nejak tahle by to nemohlo fungovat ?

$locator = Environment::getServiceLocator();
$locator->addService('Nette:RobotLoader');
pmg
Člen | 372
+
0
-

Ano, tak.

$locator = Environment::getServiceLocator();
$locator->addService($loader, 'Nette\RobotLoader');

Druhý parametr slouží jen pro označení service; když ho vynecháš, dosadí se tam název třídy předaného objektu.