RobotLoader a adresář libs – zmenšení cache robotloader

- jasir
- Člen | 746
Teď jsem zjistil takovou drobnost, ale třeba se vám to bude hodit.
Pokud používáte robotloader, pravděpodobně máte v bootstrapu
něco jako
<?php
$loader = new /*Nette\Loaders\*/RobotLoader();
$loader->addDirectory(LIBS_DIR);
?>
a v adresáři libs naházené různé knihovny, typicky nette,
dibi. Já
tam mám navíc ještě mybase (moje vlastní knihovna),
dblib (pracovní),
občas i zend.
Robot loader si všechny třídy zaindexuje a uloží si je do cache.
Ale knihovna nette je vlastně indexovaná zbytečně, ona
robotloader nepotřebuje!
Čili jsem v bootstrapu vypsal přímo knihovny:
<?php
$loader = new /*Nette\Loaders\*/RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR . "/db-library/");
$loader->addDirectory(LIBS_DIR . "/dibi/");
$loader->addDirectory(LIBS_DIR . "/myextras/");
$loader->addDirectory(LIBS_DIR . "/mybase/");
$loader->autoRebuild=TRUE;
?>
Tímto se soubor robotloaderu v cache zmenšil o ca 14 kb.
Tuším, že i zpracování se mohlo o nějakou tu setinku sekundy
zkrátit.
No, jak jsem psal, je to drobnost :)
Dobrou noc
Hurá, objevil jsem kolo .No, jak psal David, opakování je matka moudrousti.
Editoval jasir (3. 5. 2009 2:14)

- DocX
- Člen | 154
kravčo napsal(a):
Pokiaľ má
RobotLoadermedzi adresármi i ten s Nette, prekryjeNetteLoader, čiže ona duplicita nenastáva.
Jo to funguje. Prostě se PHP nejdřív zeptá na RobotLoader a
když ten nic nenajde tak jde dál. Ale myslel jsem to jako, že jsou pak
v jednu chvíli načtené v paměti oba Loadery a obsah RobotLoaderu je do
jisté míry duplicitní (pokud prochází i Nette)

- kravčo
- Člen | 721
DocX napsal(a):
Jo to funguje. Prostě se PHP nejdřív zeptá na
RobotLoadera když ten nic nenajde tak jde dál. Ale myslel jsem to jako, že jsou pak v jednu chvíli načtené v paměti oba Loadery a obsah RobotLoaderu je do jisté míry duplicitní (pokud prochází i Nette)
Nie sú. Robotloader nahradí NetteLoader v prípade, že prechádza i adresár s Nette.