Ga naar inhoud
Log in om dit te volgen  
wiitse

__autoload in class?

Aanbevolen berichten

Ik ben maar weer eens begonnen met scripten en ik zit nu direct al met een vraag. Ik wil namelijk alles oop doen. Ik wil graag de __autoload methode gebruiken voor het laden van classes. Die functie zou ik graag in een class willen zetten, maar werkt het dan wel? Een voorbeeld van mijn code staat hieronder weergegeven.

classes/Page.class.php:
Codeblok:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class Page
{
    function
__construct() {
        echo blaat;
    }

    function
__autoload($class) {
        include_once(classes/.$class..class.php);
    }
}

?>


classes/Test.class.php:
Codeblok:
1
2
3
4
5
6
7
8
<?php
class Test
{
    public static function blaat() {
        return blaat;
    }
}

?>


index.php
Codeblok:
1
2
3
4
5
6
<?php
include(classes/Page.class.php);
$page = new Page;

echo Test::blaat();
?>

Deel dit bericht


Link naar bericht
Delen op andere sites
Als het goed is moet dit werken. Al gebruik ik gewoon een apparte autoload functie (in de config bijvoorbeeld). Dus niet in een klasse smiley

Deel dit bericht


Link naar bericht
Delen op andere sites
Zoals Rik zegt kun je dat beter ergens anders doen.


In je index.php is het beste, bij echt OOP is het namelijk zo dat de index alleen maar wat includes en een classloader bevat (omdat je met templates werkt)


Afgeraden is om direct te echo-en vanuit je classfuncties, dit is niet OOP, return liever je waardes en echo dan de class->functie of de class:smileyunctie



Dit omdat je over bijvoorbeeld de function getUserName() op sommige plaatsen de naam wil laten zien, maar misschien wil je tussendoor ook berekeningen doen met bijvoorbeeld het aantal letters in de naam etc.

Dan kun je

echo $class->getUserName($henkie);
doen en
strlen($class->getUserName($henkie));


Als je wél in je functie echot dan moet je voor die 2de een nieuwe functie maken.

Deel dit bericht


Link naar bericht
Delen op andere sites
De enige classes waarin je hoort te echoën zijn error-handlers.

Deel dit bericht


Link naar bericht
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Maak een account aan in onze gemeenschap. Het is makkelijk!

Registreer een nieuw account

Aanmelden

Ben je al lid? Meld je hier aan.

Nu aanmelden
Log in om dit te volgen  

×