for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Ffcms\Core\Traits;
/**
* Class Singleton. Basic structure of singleton pattern.
* @package Ffcms\Core\Traits
*/
trait Singleton
{
protected static $instance;
* @return static
final public static function instance()
if (!isset(static::$instance)) {
static::$instance = new static;
static::boot();
}
return static::$instance;
public static function boot() {}
* Override constructor
final private function __construct() {
$this->init();
// disable some magic
protected function init() {}
final private function __wakeup() {}
final private function __clone() {}