Logica child klassen en parent klassen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Reshad F

Reshad F

04/07/2012 12:15:39
Quote Anchor link
Holla,,


ik heb een kleine logica vraag.. ik ben bezig met een eigen OOP library ( als oefening voor OOP ) en ik vroeg me af..

waar moet een child klasse van een parent klasse

dus je hebt bijv

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
<?php

class User {

  private $username;

  public function __construct($name) {
    $this->username = $name;
  }


  public function getUsername() {
    return $this->username;
  }
}


?>


en vervolgens wil ik een class als

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
<?php

class Admin extends User {
    private $admin;
    
    public function __construct($username, $id) {
        $this->username = $username;
        $this->adminId = $id;
    }

    
    public function getUserStatus() {
        return 'admin';
    }
}


?>


moet ik deze dan in hetzelfde bestandje zetten of moet ik voor Admin en alle andere een apart bestandje maken?
Gewijzigd op 04/07/2012 12:17:00 door Reshad F
 
PHP hulp

PHP hulp

28/11/2024 21:05:28
 
Erwin H

Erwin H

04/07/2012 12:20:39
Quote Anchor link
Elke class in een apart bestand. Zelfs al de class maar 1 methode heeft. Een simpele reden om dat te doen is het feit dat je met een autoloader de bestandsnaam van de classnaam wil kunnen afleiden. Het moment dat je twee classes in hetzelfde bestand zet gaat dat al niet meer werken (tenzij je iets gaat doen als Lib_User.User en Lib_User.Admin als class naam, maar dat lijkt erg omslachtig, als het al goed werkt).
Daarnaast, als je in je volgende project wel de basis class nodig hebt, maar niet de afgeleide class, dan krijg je die wel mee. Dat wil je ook voorkomen, want het kan naamconflicten geven.
 
Reshad F

Reshad F

04/07/2012 12:25:48
Quote Anchor link
duidelijk. dankjewel ik kan nu weer verder :)
 



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.