私は多くのセッションバールを持っています。私はこれを使用する必要があります
$_SESSION[SessionHelper::ROUTING] = SessionHelper::MODULE_A;
class SessionHelper {
const ROUTING = 'SessionHelper.routing';
const MODULE_A = 1;
const MODULE_B = 2;
}
またはこれですか?
第1のものは維持可能であると思われるが、場合によっては読みにくい。例:
if(isset($_SESSION[SessionHelper::ROUTING]) &&
$_SESSION[SessionHelper::ROUTING] = SessionHelper::MODULE_A) {
....
2番目は非常に短いですが、変更がある場合は、「ルーティング」が存在するすべての場所を変更する必要があります。さらに、 'ルーティング'文字列が非常に一般的であるため、セッションスコープを汚染する可能性があります。
これはこの意味ですか?私にお知らせください。 クラスSessionStore { \t const ROUTING = 'SessionStore.routing'; \t \tパブリック関数setRoute($ route){ \t \t $ _SESSION [self :: ROUTING] = $ route; \t} \t \tパブリック関数getRoute(){ \t \t戻りの$ _SESSION [自己:: ROUTING]。 \t} } – Emerald214
例のようなものがあります。少なくとも$ _SESSIONをカプセル化していますが、これは私が言及したポイントの1つです。あ、はい。あなたの例にも利点があります。アプリケーションの残りの部分は、具体的なメソッド名とのインタフェースを必要とします。 – hakre
最後の質問です。このクラスはセッション変数を設定して取得するだけなので、すべての関数が静的である可能性がありますか? (ユーティリティクラス) – Emerald214