Best practice: načítání tříd a autoloading
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- David Grudl
- Nette Core | 8228
PHP parsuje skripty při každém požadavku na server a to zabere to určitý čas. Proto patří k nejlepším postupům načítat pouze ty třídy, které nezbytně potřebuji. Tento úkol nic nezvádne lépe, než autoloading, tedy načítání tříd až v okamžiku použití.
Na druhou stranu, samotný autoloading má určitou režii. Také může komplikovat život ladícím nástrojům a vývojářským IDE.
Best practice:
- používejte autoloading
- při deklaraci třídy načtěte předky manuálně
Příklad:
Zde použiji autoloading:
$collection = new Collection;
$collection->add(...);
Zde použiji manuální načtení, protože je nezbytné:
require_once dirname(__FILE__) . '/../Object.php';
require_once dirname(__FILE__) . '/../Collections/ICollection.php';
class Collection extends Object implements ICollection
{
}
Zde není potřeba načíst třídu, nevyvolá se ani autoloading:
if ($obj instanceof Collection) ...