Ik heb een import functie geschreven die lijkt op de import in java. Nu gebeurt het soms dat een bepaalde klasse geïmporteerd wordt, terwijl zijn superklasse nog niet geladen is. Ik wil dan die import uitstellen, en doorgaan met het importeren van de overige klassen uit de package. Dat kan echter niet, aangezien de include_once() in dit geval een fatal error genereert. Hoe kan ik zorgen dat het script op een of andere manier toch doorgaat?
wil je niet juist dat je classe al beschikbaar is bij het aanroepen? kijk in dat geval eens naar __autoload()
Ik heb besloten om het anders te doen, ik kijk nu of de klasse die ik include een parent heeft, en zo ja, importeer ik die eerst. Maar hoe schrijf ik een reguliere expressie voor "class foo extends bar {" waarbij ik foo weet (zit in een variabele) en bar niet weet?
<?php
preg_match("/extends (.*?)\\n/", $string, $matches);
?>
o.i.d. ???

maar denk toch echt dat je beter af bent met een __autoloader. Deze zorgt ervoor dat alle niet gedeclareerde classes die toch gebruikt worden, geinclude kunnen worden... Als je dit een beetje handig opzet heb je gewoon een complete import...
Het is gelukt. Ik heb nu inderdaad een __autoload(), geholpen door een functie die alle packages doorzoekt en in een array van elke class het filepath bijhoudt.

Thnx iedereen voor de hulp ;)

Reageren