Ben bezig om oude 7.2 code om te zetten naar PHP 8.1, maar dat gaat niet van een leien dakkie. Kom nu een fout tegen die ik echt niet snap. Hopelijk heeft iemand hier wat meer inzicht.
Het gaat om een bestand, ergens in de core van het framework. Wat het allemaal doet is lastig uit te leggen; de code is oud en behoorlijk veel spaghetti. Maar op een gegeven moment gaat hij VIEW-classes verzamelen. Daaarbij controleert hij via een string variabele of de class bestaat of niet.
if (!class_exists($viewObj)) {
// do something
}
Het 'do something' gedeelte is niet belangrijk. Punt is dat wanneer de class bestaat, de code vrolijk doorgaat. Maar op een gegeven moment komt er een classnaam binnen die niet bestaat en dan stopt de gehele code en blijft het scherm wit. Dat gebeurt echt op het punt van de if.
- $viewObj is altijd een string
- display_error staat op 1
- error_reporting op E_ALL
- Als ik express op die plek een WARNING veroorzaak, zie ik het verschijnen, dus error reporting lijkt écht te werken
Wanneer ik een stand alone php bestandje aanmaak in de rootmap van de applicatie (sandbox.php) en ik doe exact hetzelfde met exact dezelfde classnaam, dan gaat het wél goed.
Concluderende vraag
Waarom gaat class_exists bij een niet bestaande class fout zonder melding in een bestand in de core, maar gaat dat wél goed in de rootmap?
Bedankt allemaal.