手順
- 下記のようにapp以下にtraitを書くためのファイルを作る。
fuel
|-app
|-traits.php
とりあえずtraits.phpには下記のようなソースを書いておく
traits.php
<?php
trait SingletonTrait {
private static $self = null;
protected function __construct(){}
private function __clone(){}
private function __wakeup(){}
public static function getInstance(){
if(is_null(self::$self)){
self::$self = new self;
}
return self::$self;
}
}
- 次にFuelPHPにtraitを読み込ませておく
bootstrap.php
...
Autoloader::add_classes(array(
// Add classes you want to override here
// Example: 'View' => APPPATH.'classes/view.php',
));
// Register the autoloader
Autoloader::register();
// Load trait
\Fuel::load(APPPATH.DS.'traits.php');
...
- 最後に、SingletonTraitを使いたいクラスでuse宣言する
class MyClass{
use SingletonTrait;
...
}
補足
上記では、traits.php
というファイルを作りましたが、他にも、appの下にtraits
というフォルダを作って、そのフォルダの中にファイルを作っていく方法もよいと思います。