Ola,

Als er in mijn applicatie iets fout gaat, dan wil ik daar een error-level aan kunnen koppelen.

Zelf dacht ik om gebruik te gaan maken van 3 gradaties:

1) notice: een kleine fout, bijv. een user vult een getal in in plaats van een string
2) warning: een serieuze fout, bijv. een file kan niet worden opgeslagen
3) error: er gaat iets goed mis, bijv. er kan geen database-verbinding tot stand komen

Een notice zou ik dan alleen loggen in een log-bestand. Een warning zou ik zowel loggen als mailen, en bij een error zou ik loggen en mailen en de rest van de applicatie stoppen.

Zijn deze 3 gradaties toereikend volgens jullie? Of zijn er nog tussenstappen te bedenken, en zo ja welke?
>> Als je een class die Serializable implementeert in de serialize functie gooit...

Ik zit even op het verkeerde spoor geloof ik. Hoe implementeer jij zelf een class in een native functie van PHP?

Of wacht even... je bedoelt dat je letterlijk een class in de serialize functie stopt?

$foo = new FooClass();
serialize($foo);

Zo bedoel je?
jup
Aha... en $routes is in jouw voorbeeld dus een object. Ik geloof dat ik 'm begrijp nu!
De standaard serialize() functie kan overweg met de magic method __sleep() en classes die de Serializeable interface implementeren en dus een serialize() method hebben.
unserialize() kan overweg met magic method __wakeup() en Serializeable::unserialize() implementaties.

OK, ze kunnen overweg met elk object, maar ze doen iets speciaals in die gevallen.
Oké, thanks voor je aanvulling Dos.
Merk op dat __sleep() en __wakeup() niet hetzelfde zijn als de Serializable implementaties. De __sleep() en __wakeup() methods zijn bedoelt voor het uitvoeren van speciale taken voor een object wordt geserialized/geunserialized.

De serializable geven de serialized data terug. Hiermee kun je dus zeggen, hé ipv het hele RouteCollection object te cachen cache je alleen maar zijn routes, dat bespaard ruimte! En ook kun je zelf bepalen op welke manier je wilt serializen, je kunt je eigen formaat gebruiken, of xml bijv., of gewoon de serialize functie.
... hé ipv het hele RouteCollection object te cachen

Volgens mij cachet serialize nooit het complete object.
>> Volgens mij cachet serialize nooit het complete object.

Volgens mij wel... (al hoeft ie natuurlijk niet de methods te cachen, hij cached alleen de classname en de properties)
Ja, dat is wat ik bedoel... hij cachet de class-naam en de properties, maar de rest (de methods) cachet ie niet. We bedoelen hetzelfde.
Maar dan alsnog, ik kan nog wel heel veel andere properties hebben die wat mij betreft echt niet gecached hoeven te worden (of zelfs niet gecached mogen worden).

Reageren