Je code is wel correct maar ik zie niet zoveel nut van die class.
1) Een class heeft properties (eigenschappen).
2) Methoden in een class zijn meestal gebasseert op je properties.
Het klassieke voorbeeld is een auto. Een auto heeft bepaalde eigenschappen (kleuren, aantal deuren, ...). Je kan een methode geven aan die class die gebasseert is op die properties ( openDeur() , getKleur(), setKleur() , ...).
3) Je hebt een constructor nodig.
4) Typecasting is niet nodig aangezien de keyword new __CLASS__ altijd een object teruggeeft.
.NET en Java zijn inderdaad talen die geschreven worden in OO stijl. Toch heeft iedere class van die talen ook properties en methods.
In PHP kan je classes gebruiken voor het verkorten van je code omdat de meeste code in de classes zitten. Als die class voor jou persoonlijk nuttig is, ga ik je niet tegenhouden die te gebruiken.
Als ik een class Formulier download dan denk ik meteen aan het maken van formulieren, controleren ervan enzovoort. Jou class doet slechts een klein deeltje van een Formulier.
aar het maken van formulieren in classes is voor luie mensen, heb ik gelezen Ik bedoel: is het handig om HTML te gaan vermengen met je PHP? Moet je je formulieren niet gewoon in HTML maken?
Wat mij nog niet duidelijk is, is je verhaal over methods en properties. Heb je daar een concreet voorbeeld van?
Stel dat je een class Bestand maakt. De eigenschappen van een map zijn:
- De map waarin het zit (Je kan gebruik maken van een class Map eventueel)
- De naam
- Content type
- resource Link
De methoden zijn simpel te vinden:
- __construct('test.txt') -> zal de file openen of gewoon kijken of het bestaat.
- open() -> zal de file openen.
- write( $data ) , read() , ... -> hoe logisch?
- __destruct() -> kan de file sluiten
Je kan ook eventuele andere methoden schrijven die het werken met files nog makkelijker maken.
Dit is een simpel voorbeeld. Een class schrijven is behoorlijk nutteloos tenzij je eigen mini-framework wilt maken. Het is nutteloos omdat er al zoveel classes zijn. Daarom dat de meeste scripters classes maken voor eigen gebruik.
Ik zou dan in de construct kunnen controleren of het formulier verzonden is en zo ja een var (private $bIsGepost) setten i.p.v. de aparte functie fIsGepost().
<?php
class Formulier
{
private $bIsGepost = false;
function __construct()
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$this->$bIsGepost = true;
}
}
// de rest van de functies.
}
// de rest.
?>
deze kun je dan toepassen op select en radio, en de beste is, dat je nu alleen 1 functie hoeft aan te passen om de verandering voor zowel radio als select toe te paasen
In het begin van mijn pagina maak ik een nieuw object cache, en op de volgende regel roep ik de functie start van die classe aan:
$cache->start('bestandsnaam');
op het einde van de pagina zet ik:
$cache->write();
Je ziet, ik spreek 2 functies aan, wat me dus een pak code scheelt gezien ik dit op elke pagina moet doen.
De bedoeling van een classe is imo vooral makkelijkheid en duidelijkheid...
Bedankt. Ik heb nu eigenlijk een set functies in een class, maar die ik toch allemaal moet aanroepen. Het is dus dan niet handig om een class te gebruiken, maar om gewoon functies te gebruiken.
Ik blijf dan alleen met de vraag zitten met talen zoals Java en .Net, waarin alles OOP is. Dan zit je toch met hetzelfde verhaal?
Nee want die makers hebben dat slim gezien. Ieder ding op je scherm is een object. Een knop is een object die eigenschappen heeft (kleur, tekst, achtergrond, positie , ...) en je kan allerlei acties doen op het object.
Je hebt natuurlijk wel de main class nodig maar daarin wordt het uiteindelijke programma gemaakt en een programma heeft ook eigenschappen/methodes nodig.