[PHP] classes

Pagina: 1
Acties:
  • 144 views sinds 30-01-2008
  • Reageer

  • ZEN
  • Registratie: April 2000
  • Laatst online: 10-03-2021

ZEN

huh? wat doe ik hier?

Topicstarter
zomaar een vraagje hoor, maar waarom zou ik classes bouwen ipv functies?
en hoe doe ik dat? iemand een tutorial, want wat op php.net staat is me niet helemaal 100% duidelijk

Linux server installatie en beheer (clusters failover loadbalancing): http://www.virtualconcepts.nl/


Verwijderd

Je zou bij PHP met classes moeten werken om dezelfde reden waarom je in andere talen ook met classes zou moeten werken: encapsulation, reusability & inheritance (en nog een dik pak andere redenen die ik weer niet heb onthouden ;)).

Ik _persoonlijk_ zie alleen niet waarom je bij een (toch redelijk eenvoudige) scripting taal iets dergelijks zou willen gaan doen. Derhalve heb ik mij er ook niet verder in verdiept en kan ik je niet uitleggen hoe het moet.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Zoals gewoon heeft php builder een tutorial over Classes, http://www.phpbuilder.com/columns/rod19990601.php3

En enige waar ik een Class voor heb gebruikt is voor het herschrijven van de mysql functie's, zodat ze nog duidelijker zijn als ze al waren. En me source is daar door veel duidelijker en gestructureerder geworden.

Programmer - an organism that turns coffee into software.


  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 12-02 13:47
Ik heb zelf een class gemaakt voor het gebruik van html templates. Erg handig, en het houdt je source heel overzichtelijk. Het is een kruising tussen Fasttemplates en phplib

Verwijderd

Ik heb zelf een class gemaakt voor het gebruik van html templates. Erg handig, en het houdt je source heel overzichtelijk. Het is een kruising tussen Fasttemplates en phplib

Dat is een van de dingen die behoorlijk ontbreekt aan PHP: een makelijke manier om HTML uit te spugen.

Bijvoorbeeld in een formulier gebruik ik dit soort dingen:

function html_textarea($attribute, $text, $editable=1) {
    if ($editable) {
        $attributes = "";
        while ( list($name, $value) = each($attribute) ) {
            $name = htmlentities($name);
            $value = htmlentities($value);
            $attributes .= " $name=\"$value\"";
        }
        echo '<textarea' . $attributes . '>';
    }
    echo htmlentities($text);
    if ($editable) {
        echo '</textarea>';
    }
}

  • tom kuipers
  • Registratie: Juli 1999
  • Laatst online: 23-02-2025
Het word er zeker overzichtelijker door!

Ik gebruik het bijvoorbeeld om de style van de pagina mee uit te poepen. Werkt beter dan alleerlei stukken includen die overal het zelfde zijn.

BV

$style = new style;

// Stukje javascript voor het tellen van aantal tekens van sms in de <head> zetten
$style->head="<script src="js/sms.js" language="javascript"></script>";

$style->begin();
$style->top();
$style->navigatie();
$style->startleftrow();

$style->inforow("Verstuur een SMS", "Hier ook text");
$style->inforow("Adresboek", "Text bla bla");

$style->contentrow();

Wat ook makkelijk is, is dat je het makkelijk overal kan gebruiken. Bijvoorbeeld een optie om op de site waar je je aangemeld hebt je profiel te wijzigen. Nu wil ik die ook in de Admin kunnen gebruiken voor elke gebruiken.

$user = new user;
$user->scriptname = "admin.php3?action=userdata&UserID=".$UserID."&";
$user->userbewerken($HTTP_POST_VARS, $UserID);

Zo ziet hij er dus uit in de admin. Ik geef gewoon de Userid mee... nu is het een uit de get_vars. Maar ik zou hem ook die van de ingelogde sessie kunnen gebruiken.

Gewoon heel handig! En je scrips worden er STUKKEN duidelijker van!

Wat een verneukt forum is dit zeg :( Tussen de code tags dus smilies gebruiken. EN de code tags niet goed gebruiken!

  • ZEN
  • Registratie: April 2000
  • Laatst online: 10-03-2021

ZEN

huh? wat doe ik hier?

Topicstarter
thnx people,

ik denk dat vooral de mogelijkheid om het makkelijk te hergebruiken en dat het duidelijk is een groot voordeel is. beter dan loos dingen includen ;)

ik zal er eens in gaan duiken.

Oh nog een klein vraagje, waarom niet gewoon functies maken?

Linux server installatie en beheer (clusters failover loadbalancing): http://www.virtualconcepts.nl/


  • tom kuipers
  • Registratie: Juli 1999
  • Laatst online: 23-02-2025
Dan krijg je er zo'n zooi van. En omdat je vooraf alle variables defined(met een goede omschrijving) is het voor een ander ook simpel & snel te gebruiken.

En je hebt mooi alle dingen die met elkaar te maken hebben in 1 groep staan.

En je kan er meerdere van dezelfde aanroepen met verschillende variables... hoe moet ik dat uitleggen.. hier prog voorbeeltje die 2 smsen moet versturen, met de SMS class.

$sms = new sms;
$sms->bericht="bla";
$sms->aan="+3106--------";

$nog_een_sms = new sms;
$nog_een_sms->bericht="xy leuk";
$nog_een_sms->aan="+3106--------";


$sms->send();
$nog_een_sms->send();

Zo kan je dus 2x een class gebruiken met andere variables. Heel handig en overzichtelijk dus.

Verwijderd

Ik snap, ook na dat verhaal, nog helemaal geen geen RUK van classes...
help..?

Verwijderd

Ik snap, ook na dat verhaal, nog helemaal geen geen RUK van classes... help..?

Omdat op jouw browser blijkbaar geen zoekmachine te bereiken is:
http://www.phpbuilder.com/columns/mark20000727.php3
http://www.phpbuilder.com/columns/rod19990601.php3
http://www.phpbuilder.com/columns/luis20000420.php3

HTH

HAND

Verwijderd

Thx, maar ik snap er nog steeds niets van. Laat maar, ik gebruik wel de include() methode... :)

Verwijderd

hihi..

classes moet je definieren en vervolgens ook includen!!

Je bent er idd nog niet zo in thuis. Probeer eens iets met classes te maken ahv de voorbeelden en columns die je tegenkomt...daar leer je het meeste van.

Verwijderd

<?>
Hoe bedoel je?
</?>

  • Tuinhark
  • Registratie: April 2000
  • Laatst online: 18-02 19:40

Tuinhark

Retro

Classes definieer je meestal in een aparte PHP file om de code leesbaar te houden. Dan moet je die file includen in je normale files om de class te kunnen gebruiken.

Verwijderd

<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>Op 27 september 2000 15:49 schreef DOS het volgende:
<?>
Hoe bedoel je?
</?>[/quote]Classes zijn een soort uitbreiding op types variablen. Het gaat om een klasse/type (class) objecten dat bepaalde dingen kan doen (methods) en bepaalde eigenschappen heeft (fields, properties).

HTH

Verwijderd

Dus een soort (uitgebreide-) functie die meerdere functies met meerdere variabelen kan doen...

Hoe bouw je class op dan?
dat -> teken vind ik erg onduidelijk.

  • Tuinhark
  • Registratie: April 2000
  • Laatst online: 18-02 19:40

Tuinhark

Retro

<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>class Mail
{
var $to;
var $from;
var $msg;
var $subj;
var $headers;

function send()
{
return mail($this->to, $this->subj, $this->msg, "From: {$this->from}n{$this->headers}");
}
}

$meel = new Mail();
$meel->to = "jans@jansen.com";
$meel->from = "blaat@boe.com";
$meel->subj = "Hallo";
$meel->msg = "Doei";

if ($meel->send())
echo "Gelukt";
else
echo "Mislukt";[/quote]

  • ZEN
  • Registratie: April 2000
  • Laatst online: 10-03-2021

ZEN

huh? wat doe ik hier?

Topicstarter
thnx guyz,
ik begin het te begrijpen en het nut te snappen, alleen nu nog wennen aan het werken er mee, alles wat ik tot nu toe gemaakt heb werkt maar half :( maar dat komt wel :)

alleen dat $this-> is een geklooi ;)

Linux server installatie en beheer (clusters failover loadbalancing): http://www.virtualconcepts.nl/

Pagina: 1