これはうまくいくかもしれませんが、私はそれが賢明な行動だとは思いません。私の意見では、驚き最小の原則は、ユーザーインターフェイスの設計だけでなくプログラミングにも当てはまります。スクリプトのデフォルトの動作を上書きする$_SESSION
と、コードを処理しなければならない将来のプログラマーの混乱を招きます。
このように超グローバルな性質を悪用するのはハックであり、不快なことだと思います$_SESSION
。
私の意見では、データを取得および設定するための静的メソッドを使用してクラスを作成することをお勧めします。
class Session {
public function get($key, $defaultValue = null) {
// do some code to get the value for $key, and return $defaultValue if there is none
}
public function set($key, $value) {
// do some code to set $key
}
}
Session::get('someKey')
次に、またはSession::get('someKey', 'default')
およびを使用してこれにアクセスできますSession::set('someKey', 'someValue')
。
クラスは本質的にグローバルであるため、コード内のどこからでもこれにアクセスできます。それほど驚くことではなく、今後の混乱も少なくなります。
設計上の理由でオブジェクトメソッドを使用したい場合は、シングルトンパターンを実装するのが最適な場合があります。