OOP Beginnershandleiding (PHP5)

  1. Inleiding
  2. Object geƶrienteerd denken
  3. Foute denkwijze
  4. Object georiƫnteerd programmeren
  5. Visibility
  6. Naamgeving
  7. Constructor __construct()
  8. Voorbeeld: HTML tabel
  9. Inheritance
  10. Voorbeeld: HTML tabel 2 (inheritance)
  11. Static methods en properties
  12. Abstract classes en Interfaces
  13. Magic methods
  14. Slotwoord en referenties
  15. Reacties op deze tutorial

Naamgeving

Ik dit hoofdstuk ga ik kort in op de naamgeving conventies binnen OOP. Uiteindelijk blijft het een persoonlijke keuze hoe je je classes, properties en methods noemt, echter zou ik aanraden om je aan een van de bestaande conventies te kiezen en je daaraan te houden.

In deze handleiding maak ik gebruik van de conventie die door Zend opgesteld is. Deze conventie wordt veelvuldig gebruikt en zorgt er dus voor dat anderen jouw scripts ook eenvoudig kunnen lezen.

Classes
De naam van een class is altijd een zelfstandig naamwoord in het enkelvoud. De eerste letter van een class naam is altijd een hoofdletter, de rest van de letters is altijd lowercase. Mocht de naam uit meerdere woorden bestaan dan worden deze gescheiden door een underscore. De eerste letter van opeenvolgende woorden is ook een hoofdletter.

Voorbeelden van correcte class namen:
  • User
  • Message
  • Html_Table
  • Message_Store

Voorbeelden van incorrecte class namen:
  • user (eerste letter geen hoofdletter)
  • Document_PDF (te veel hoofdletters, DF van PDF moet lowercase)

Variabelen
Namen van properties/variabelen bestaan uit alfanumerieke tekens, alhoewel het gebruik van getallen in een naam afgeraden wordt. Ze beschrijven duidelijk de inhoud van de variabele. Mocht een variabele uit meerdere woorden bestaan, dan wordt de camelCase notatie gehanteerd, underscores horen daar niet thuis.

Namen van private of protected properties worden altijd vooraf gegaan door een underscore. Dit is de enige situatie waarin underscores in een variabelenaam voorkomen.

Voorbeelden van correcte property/variabele namen:
  • public $username
  • public $homeAddress
  • protected $_databaseConnection
  • private $_resultSet

Methods
De naam van een method beschrijft de handeling die de method uitvoert. Ze zijn volgens de camelCase notatie opgebouwd bestaan tevens enkel uit alfanumerieke tekens. Ook hier geldt dat private en protected methods voorafgegaan worden door een underscore.

Voorbeelden van correcte method namen:
  • public function filterInput()
  • public function draw()
  • protected function _calculateTotal()
  • private function _countMessages()

Constanten
Namen van constante properties worden volledig in hoofdletters geschreven. Meerdere woorden worden gescheiden door een underscore en de namen worden binnen de class vooraf gegaan door het keyword 'const'.

Voorbeelden van correcte constante namen:
  • const EMPTY
  • const INVALID_ARGUMENT_COUNT

Bestandsnamen
De naamgeving van je PHP bestanden staat los van de naamgeving in je PHP code, maar wil ik toch behandelen. Het is gebruikelijk om voor iedere class een apart PHP bestand aan te maken. Met oog op een functionaliteit die ik in een later hoofdstuk zal behandelen, is het verstandig om de volgende conventie aan te houden: class_naam.class.php. We zorgen dus dat de naam van de class terug komt in de bestandsnaam van het bestand waarin die class staat. De class naam wordt daarbij geheel lowercase geschreven.

Voorbeelden van bestandsnamen:
  • user.class.php
  • message.class.php
  • html_table.class.php
  • message_store.class.php

Zoals ik eerder al zei is naamgeving vooral een kwestie van persoonlijke smaak en bewust programmeren. Ook zijn er meer conventies dan alleen die van Zend, dus ik nodig je zeker uit om verder te kijken als deze je niet bevalt. Uiteindelijk komt het erop neer dat je in ieder geval voor jezelf een consistente naamgeving in je scripts moet gebruiken, anders zie je op een gegeven moment door de bomen het bos niet meer.

Het wordt tijd om weer eens naar wat code te gaan kijken. In het volgende hoofdstuk bespreek ik het gebruik van de constructor van een class.

Vorige Volgende