[classes] >1 extends
Goedenavond phpers,
Ik ben weer eens verder gegaan met php en zit het een en ander te proberen.
Nu heb ik in een mapje waar php bestanden met classes in staan. Deze bestanden hebben elk 1 classe met verschillende functions.
Nu wil ik met een classe van index.php al die classes uit dat ene mapje extenden(inladen). hoe kan ik dit het beste doen?
Iemand een idee?
alvast bedankt.
Ik ben weer eens verder gegaan met php en zit het een en ander te proberen.
Nu heb ik in een mapje waar php bestanden met classes in staan. Deze bestanden hebben elk 1 classe met verschillende functions.
Nu wil ik met een classe van index.php al die classes uit dat ene mapje extenden(inladen). hoe kan ik dit het beste doen?
Iemand een idee?
alvast bedankt.
Gesponsorde koppelingen:
Maar dan zijn ze toch nog niet ge-extend in de classe van index.php?
Niek90 schreef op 07.05.2009 19:29:
Wellicht begrijp ik je verkeerd. Heb je een codevoorbeeldje?Maar dan zijn ze toch nog niet ge-extend in de classe van index.php?
Het kan ook zijn dat ik er naast zit maar ik zal het nog eens duidelijker proberen uitleggen.
Ik heb een index.php.
Deze heeft een Klasse, ik noem deze even "hoofdclass".
In de map modules staan (bijvoorbeeld) 3 phpbestandjes, met elk 1 Klasse erin. dus (bijvoorbeeld):
module1.php met Klasse module1,
module2.php met Klasse module2
module3.php met Klasse module3
Nu wil ik de klasse module1, module2 en module3 extenden in hoofdclasse. dus dan krijg je eigenlijk:
Maar dat gaat natuurlijk niet zo, en wanneer er een nieuwe module4.php in de map modules word gegooid moet deze ook automatisch erbij worden ge-extend.
Ik hoop dat het nu beetje duidelijker is, ik weet niet goed hoe ik het anders uit moet leggen.
Ik heb een index.php.
Deze heeft een Klasse, ik noem deze even "hoofdclass".
In de map modules staan (bijvoorbeeld) 3 phpbestandjes, met elk 1 Klasse erin. dus (bijvoorbeeld):
module1.php met Klasse module1,
module2.php met Klasse module2
module3.php met Klasse module3
Nu wil ik de klasse module1, module2 en module3 extenden in hoofdclasse. dus dan krijg je eigenlijk:
Maar dat gaat natuurlijk niet zo, en wanneer er een nieuwe module4.php in de map modules word gegooid moet deze ook automatisch erbij worden ge-extend.
Ik hoop dat het nu beetje duidelijker is, ik weet niet goed hoe ik het anders uit moet leggen.
Code (php)
Dit is om je een idee te geven hoe je het kan aanpakken. Deze code is niet getest. Dat stukje van "Loader::Loadclass" verwijst naar een klasse die bestanden in kan laden, zoals ik het zelf heb gemaakt. Daar vindt ook de foutafhandeling en dergelijke plaats.
Gewijzigd op 01/01/1970 01:00:00 door Midas
Het is onmogelijk om meerdere klassen tegelijk te extenden. Ik denk dat je dan de zaken iets verkeerd aanpakt.
Als het is wat Midas bedoeld, kan je dus ook __autoload() gebruiken. Zet in je index (buiten de klasse zelf) bijvoorbeeld:
Als het is wat Midas bedoeld, kan je dus ook __autoload() gebruiken. Zet in je index (buiten de klasse zelf) bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
function myLoader($class) {
if(file_exists('modules/' . $class . '.php')) {
require_once('modules/' . $class . '.php'));
return true;
}
return false;
}
spl_autoload_register('myLoader');
?>
function myLoader($class) {
if(file_exists('modules/' . $class . '.php')) {
require_once('modules/' . $class . '.php'));
return true;
}
return false;
}
spl_autoload_register('myLoader');
?>
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
Vreemde vraag.
Kijk, wat je wel kan doen, is binnen een klasse andere klassen gebruiken.
Als het er om gaat dat je methodes van de ene klasse in een andere klasse wil gebruiken, is dat mogelijk.
Het is ook geen enkel probleem om binnen een klasse objecten te maken van een andere klasse.
Zou je daarmee al geholpen zijn? Want wat je vraagt, is echt wel vreemd.
Standaard voorbeelden van extends:
class manager extends employee
Wat noodzakelijk is, is de idee dat een manager een employee is, maar dan met nog wat extra dingen.
Het extended object moet een parent object zijn, maar dan met nog extra functionaliteit.
Kijk, wat je wel kan doen, is binnen een klasse andere klassen gebruiken.
Als het er om gaat dat je methodes van de ene klasse in een andere klasse wil gebruiken, is dat mogelijk.
Het is ook geen enkel probleem om binnen een klasse objecten te maken van een andere klasse.
Zou je daarmee al geholpen zijn? Want wat je vraagt, is echt wel vreemd.
Standaard voorbeelden van extends:
class manager extends employee
Wat noodzakelijk is, is de idee dat een manager een employee is, maar dan met nog wat extra dingen.
Het extended object moet een parent object zijn, maar dan met nog extra functionaliteit.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay



