Stel ik heb een class die een include-statement gebruikt, dan kan de hele pagina in de include-statement de $this-variabele gebruiken.
Ik vroeg me af of dit kwaad kan.
vb.:
-- home.php --
<?php
class home
{
public $var1, $var2, $var3, //...
public function __construct ($v)
{
$this->var1 = $var;
include "includeFile.php";
}
}
new home ('test');
?>
Het op deze manier includen sloopt eigenlijk je oo functionaliteit doordat niet meer duidelijk is waar iets gebeurt. Als je iets aan wilt passen kun je een class extenden.
Eehm, dit is enkel en alleen een voorbeeld. Dit is niet de reden waarom ik 't ga gebruiken.
Ik wil dit gaan gebruiken door waarden uit een 'nette URL' te halen:
dan kom je standaard op een pagina waar een class staat die deze waarden uitleest.
Die zet 'dit-is-een-leuk-topic' in een variabele en 'pagina-3', en zal dan forum.php includen (wat uiteraard wel beveiligd is, zodat je niet elke pagina kan openen...)
Dan kun je d.m.v. $this->GET[0] de waarde 'dit-is-een-leuk-topic' krijgen enz.
In die eerstgeladen class maak ik dan ook de functie tot het outputten van de layout etc., dus word het eigenlijk een class die alles om de site heen regelt...
Dit kan ook anders, daarom vraag ik of het verstandig is...
Edit:
en alle belangrijke variabelen zet ik dan ook in de class zelf...
In (goed) OOP is includen in methoden de enige manier om dynamisch bestanden te laden. Ja, het kan dus prima en werkelijk elk OOP framework doet het zo. Vooral bij autoloading en ook bij views is het de enige mogelijkheid.