ファクトリメソッド用に作成したこのクラスがあり、22行目で次のようなエラーが発生し続けます。
致命的なエラー:オブジェクトコンテキストにないときに$thisを使用する
私は他の人々の投稿や同様の質問を見たことがありますが、残念ながら、彼らが私の状況への答えとして取ったものを適用できるほど十分に何が起こっているのか理解できません。
私のクラスはそのように呼ばれています:
$class = AisisCore_Factory_Pattern('class_you_want');
そして、そこから以下が実行されます。
class AisisCore_Factory_Pattern {
protected static $_class_instance;
protected static $_dependencies;
public function get_instance(){
if(self::$_class_instance == null){
$_class_instance = new self();
}
return self::$_class_instance;
}
public function create($class){
if(empty($class)){
throw new AisisCore_Exceptions_Exception('Class cannot be empty.');
}
if(null === self::$_dependencies){
$this->_create_dependecies();
}
if(!isset(self::$_dependencies['dependencies'][$class])){
throw new AisisCore_Exceptions_Exception('This class does not exist in the function.php dependecies array!');
}
if(isset(self::$_dependencies['dependencies'][$class]['arguments'])){
$new_class = new $class(implode(', ', self::$_dependencies['dependencies'][$class]['params']));
return $new_class;
}else{
$new_class = new $class();
return $new_class;
}
}
private function _create_dependecies(){
self::$_dependencies = get_template_directory() . '/functions.php';
}
}
それがおかしくなりそうなところは次のとおりです。
$this->_create_dependecies();
それがどのように文脈から外れているのか、または私がそれを適切に呼び出す方法がわかりません。