Singleton

Een singleton zorgt dat er maar één instantie van een klasse bestaat en dat iedereen dezelfde instantie gebruikt.

Kenmerken

  • Private constructor voorkomt dat je elders met new een extra instantie maakt.
  • Een static instance-method geeft je altijd dezelfde instantie terug.
  • Handig voor gedeelde resources (database-connectie, config-loader), maar gebruik spaarzaam om testbaarheid te behouden.

In dit project heeft ./src/Controller/Database.php een private constructor en een instance-methode die een gedeelde instantie teruggeeft. Zo voorkom je meerdere databaseconnecties die elkaar in de weg zitten.

Singleton in PHP
1 2 3 4 5 6 7 8 9 10 11 12 13
class Database { private static ?Database $instance = null; private function __construct() {} public static function instance(): Database { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } }

Gebruik met beleid

Singletons zijn handig, maar kunnen afhankelijkheden verbergen. Overweeg dependency injection wanneer mogelijk.