You may want to put some text here

Zend Loader sneller maken

Als ik werk met het Zend framework om een website te maken gebruik ik meestal Zend_ Loader in combinative met de registerAutoload methode om mijn classes automatisch te laten laden wanneer ik ze nodig heb. Het voordeel hiervan is dat je jezelf niet meer druk moet maken over includes omdat de de Zend Loader dit allemaal voor jou doet.

De laatste tijd merkte ik dat die Zend Loader niet zo snel werkte en daarom ben ik eens naar de code gaan kijken van deze klasse. Ik merkte direct dat hier heel wat code uitgevoerd werd die ik niet nodig had. Ik denk hierbij aan securityCheck en dergelijken.

Om te testen heb ik eens een simpele autoloader geschreven die hetzelfde doet als Zend Loader maar dan zonder alle overbodige code. Deze autoloader ziet er als volgt uit.

// Autoload
function __autoload($class) {
require str_replace('_', '/', $class) . '.php';
}

Deze code heb ik bovenaan de bootstrap geplaatst.

Na wat testen kwam ik tot de conclusie dat mijn autoload zorgde voor een snelheidswinst van 34ms op een script dat gemiddeld 950ms nodig heeft voor uit te voeren. Dit wil dus zeggen een snelheidswinst van 3,5%. Dat is zeker niet slecht voor zo’n kleine aanpassing.

Wat je ook kan doen is een eigen klasse schrijven die overerft van Zend_Loader en vervolgens voeg je hieraan een methode autoload toe die de Zend_Loader autoload overschrijft. Dit is natuurlijk een iets properdere manier dan die ik hier juist heb uitgelegd.

Voor mij in het vervolg dus geen Zend_Loader meer.

The Author of this post is Wim Mostmans

Wim Mostmans heeft een eigen webontwikkeling bedrijf Sitebase waar hij voltijds voor werkt. Hij beheert ook nog enkele websites waaronder deze en een Computerforum. Blijf op de hoogte van waar Wim mee bezig is door hem te volgen op Twitter.

Leave a Comment