Lazy Registry Class
Een Registry klasse is een klasse waarin je objecten kunt opslaan, zodat je ze ergens anders weer kunt gebruiken.
Een voorbeeld hiervan is je PDO instantie. Die is nodig bij een hoop klassen, en je wilt deze misschien niet de hele tijd doorgeven in de constructors. Je kunt dan het object via de method Registry::set($name, $object) registreren, en later weer ophalen via Registry::get($name).
Je benadert de Registry class via static methods zodat je niet steeds een referentie van de juiste instantie hoeft door te geven. Binnenin de Registry wordt via een singleton één echte instantie van Registry aangemaakt.
Met deze klasse kun je objecten ook lazy registreren. Lazy registreren houdt in dat het object dat je registreert pas echt wordt aangemaakt als je het voor het eerst gebruikt. Dit kan handig zijn als je niet zeker weet of hij gebruikt gaat worden.
Je kunt in deze Registry klasse een object lazy laten registreren door alleen de naam van de klasse en eventuele argumenten op te geven, maar ook door er nog een naam van een statische methode aan toe te voegen.
Ik hoop dat het nut van de klasse zo duidelijk is. En ik hoop dat het gebruik samen met de documentatie in de klasse ook duidelijk is.
Ik weet dat er al een hoop Registry klassen bestaan op het internet, maar ik heb er weinig gezien waarbij je classes lazy kunt registreren. Vandaar dat ik deze klasse post. Het is namelijk niet gemakkelijk om dit te implementeren. Na lang zoeken heb ik gebruik gemaakt van de Reflection API van PHP, en dat blijkt erg goed te werken.
Uiteraard is dit alleen een begin en kun je dit nog een heel eind uitbreiden en/of aan je eigen stijl aanpassen. De basis, en daarmee het lastigste is echter alvast gelegd.
Changelog:
- Clone en unserialisatie preventie weggehaald omdat het onmogelijk is om aan in instantie van Registry te komen, en het dus ook niet mogelijk is om hem te clonen of te serialiseren.
- Er voor gezorgd dat je niet een lazy object en een normaal object onder dezelfde naam kunt registreren.
Gesponsorde koppelingen
PHP script bestanden
Er zijn 7 reacties op 'Lazy registry class'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu