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á
RobotLoader
medzi 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
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)
Nie sú. Robotloader nahradí NetteLoader v prípade, že prechádza i adresár s Nette.