私は、パスやURLなどの基本設定のみを含む設定ファイルを作成しました。クラスを宣言するときに複数のインスタンスを避けるために、構成ファイルクラスに再利用可能なインスタンスが1つしかないことを確認するためにシングルトンを作成しました。別のクラスでも使用できます。それが正しいか?シングルトン構成ファイルを正しく作成していますか?
また、変数が別のクラスにある場合は、変数値の複数の更新を避けたいと考えています。このパターン。私はルートパスを一度しか編集できず、このルートパス変数を使用するすべてのクラスは、ルートパスの同じ値を持つ各クラスのローカル変数を作成するのとは異なり、すでに更新されています。
class Configuration
{
private static $instance;
private $configurations = array("root_path" => "C:/xampp/htdocs/essentials",
"root_url" => "http://XXX.XXX.XXX.XXX/essentials",
"global_class_path" => "/resources/scripts/php/global/classes/",
"login_class_path" => "/resources/scripts/php/login/classes/",
"time_zone" => "Asia/Manila");
/* Get the instance of the class */
public static function getInstance()
{
if (empty(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
/* Prevent creating of new instance if already existed */
private function __construct() {}
/* Prevent cloning of instance */
private function __clone() {}
/* Prevent unserializing of instance */
private function __wakeup() {}
public function getConfiguration($configuration_id) {
return ((empty($this->configurations[ $configuration_id ]))
? null
: $this->configurations[ $configuration_id ]);
}
}
私はそれをしてそれを嫌いました – bassxzero
工場はあなたにシングルトンと同じことを買っていますが、すべてのジャッキーと悪い感じがありません – bassxzero
変数の管理が簡単な提案。例えば別のクラスにある変数の値を更新したい場合は、それらのクラスをすべて更新する必要があります。デザインパターンとは異なります。私は変数の値を1回だけ変更します。 –