Nieuw in OOP, eerste scriptje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John goes

john goes

12/03/2011 15:06:38
Quote Anchor link
Ik vond dat het tijd werd om over te gaan op OOP in php. Ik programmeer al vrij lang en vind het wel lastig om nu echt de voordelen van OOP te zien. Ik denk dat het voordeel is dat door het kleiner maken van de code (opdeling door specifiekere doelen), de herbruikbaarheid en overzicht vergroot word.

Ik heb de code toegevoegd en wil graag weten of ik op de goede weg ben. Het is een simpel stukje code de een tafel opdrukt op het scherm.

tafels.php
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

    include_once('tafels.class.php');

        // b.v. de tafel van 5
    $tafel = new Tafel(5);
    
    echo $tafel->KopTekst();
    echo $tafel->TafelUitvoer() ;

?>


tafels.class.php
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

class Tafel {
    
    private $_tafel;
    
    public function __construct( $tafel ) {
        
        return $this->_tafel = $tafel;
        
    }

    

    public function TafelUitvoer() {
        
        $tafeltekst='';
        for( $maal = 1; $maal<=10; $maal++ ) {
            $tafeltekst .= Tafel::_TafelRegel( $maal );
        }

        
        return  $tafeltekst;
    }

    
    public function KopTekst() {
        
        $tekst= 'De tafel van ' . $this->_tafel . '<br>';
        
        return $tekst;
    
    }

    
    private function _TafelRegel( $maal ) {
        
        $uitkomst     = $this->_tafel * $maal;
        $tafelregel = $maal . ' X ' .  $this->_tafel . ' = ' . $uitkomst . '<br>';
        
        return $tafelregel;
    }
}


?>
Gewijzigd op 12/03/2011 15:21:57 door John goes
 
PHP hulp

PHP hulp

23/11/2024 13:45:09
 
Joren de Wit

Joren de Wit

12/03/2011 15:16:45
Quote Anchor link
Je bent op de goede weg. Het is natuurlijk moeilijk om inhoudelijk commentaar te geven op zo'n abstract voorbeeld, maar er zitten in ieder geval geen fouten in.

Om het nog compacter te maken, zou je de KopTekst() method ook in de TafelUitvoer() method kunnen aanroepen zodat je vanuit je procedurele code maar 1 method hoeft aan te roepen.

Verder zou ik wel even je naamgeving in de gaten houden. Kies een conventie en zorg dat je je daar structureel aan houdt. Dat komt de overzichtelijkheid van je code zeker ten goede. Zoek eens op internet naar veel gebruikte naamgeving conventies binnen (PHP) OOP.
 
John goes

john goes

16/03/2011 20:28:18
Quote Anchor link
Bedankt voor je reaktie. Waar het mij in dit voorbeeld omging was hoever je moet gaan met het klein houden van de method. Ik denk dat ik daar een redelijk beeld van heb. Ik ben nu bezig met een klein spelletje (galgje) te maken in php in OOP vorm.
Als ik het klaar heb zal ik het plaatsen.
Ik heb wel gemerkt dat je dit niet op de ad-hoc methode moet maken, maar dat je meer vooruit moet denken. Dit vergt wel aanpassing van je programmeer methode.

Wat ik me eigenlijk afvroeg, als je de methods klein houd, heb je meer tekst in je php-script staan door dat je meer regels gebruikt. Is dit van invloed op de verwerkings snelheid? Of is OOP meer efficient waardoor dit niet uitmaakt?
 
Pim -

Pim -

16/03/2011 22:10:40
Quote Anchor link
Ik zou je niet zo druk maken om snelheid. 1 enkele query kost waarschijnlijk meer tijd dan het interpreteren van je hele code. Belangrijker is het dus je queries te optimaliseren en slim caches te gebruiken, hoe je code is niet zo belangrijk voor de snelheid, wel voor de overzichtelijkheid en 'onderhoudbaarheid'.

Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)
 

16/03/2011 23:41:55
Quote Anchor link
Pim - op 16/03/2011 22:10:40:
(...)
Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)


Onderhoudsvriendelijkheid ?
 
Joris van Rijn

Joris van Rijn

17/03/2011 08:16:36
Quote Anchor link
Pim - op 16/03/2011 22:10:40:
Kan iemand me een mooi Nederlands woord voor maintainability geven? ;)


Onderhoudbaarheid was goed!
 
Kris Peeters

Kris Peeters

17/03/2011 10:41:29
Quote Anchor link
Een constructor hoort geen return terug te geven.

Dit volstaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
...
  public function __construct($tafel) {
    $this->_tafel = $tafel;
  }
...

?>


Verder moet je eens nadenken over private <-> protected.
protected laat je toe dat klassen die van de jouwe zijn afgeleid ook toegang krijgen tot die eigenschappen ($this-> variabele) en methodes ($this-> functies).

Als je private gebruikt impliceer je dat het absoluut verboden moet zijn dat extends ooit die dingen kunnen aanroepen.
Het is uiteraard mogelijk dat je dat zo wil, maar misschien ook niet.
Gewijzigd op 17/03/2011 10:42:31 door Kris Peeters
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.