Witam, pierwszy raz używam Singleton'a i ciekawi mnie jedna rzecz, piszę silnik do CMS'a i właśnie tutaj chciałem sprawdzić działanie tego wzorca projektowego. Modułów będzie dużo i chciałbym wiedzieć czy to w jakiś sposób będzie wydajniejsze niż normalnie wywołanie modułu. Oto taki prosty kod który pokazuje jak chciałbym to zrobić.
Tutaj plik główny silnika:
<?php
class CMS {
private static $instance;
private function __construct() {}
public static function getInstance(){
if (self::$instance === null) {
echo ' jest ';
self::$instance = new CMS();
}
return self::$instance;
}
public function load($modul){
if (file_exists(strtolower($modul).'.php')){
require_once(strtolower($modul).'.php');
return $modul::getInstance();
}
}
}
CMS::getInstance()->load('Portfolio')->wyswietlWpisy();
CMS::getInstance()->load('Portfolio')->dodajWpis();
?>
A tu plik z modułem, dla przykładu to Portfolio:
<?php
class Portfolio {
private static $instance;
private function __construct() {}
public static function getInstance(){
if (self::$instance === null) {
self::$instance = new Portfolio();
}
return self::$instance;
}
public function wyswietlWpisy(){
echo 'tu będą wpisy';
}
public function dodajWpis(){
echo 'tu będzie dodawanie wpisu';
}
}
?>
Proszę o opinie.