// The template
trait TSingleton
{
private static $_instance = null;
private function __construct(){} // Must have private default constructor and be aware not to open it in the class
public static function getInstance()
{
if (null === self::$_instance)
{
self::$_instance = new self();
}
return self::$_instance;
}
}
class FrontController
{
use TSingleton;
}
// Can also be used in already extended classes
class WebSite extends SomeClass
{
use TSingleton;
}
trait Person {
fn get_full_name(self): str
fn get_age(self): byte
}
Languages with Traits include PHP, Jule
View all concepts with or missing a hasTraits measurement
Read more about Traits on the web: 1.