CodeIgniter でネイティブ セッションを使用するにはどうすればよいですか?
現在、私はで使用session_start
していconstants.php
ます。それは正しい方法ですか?落とし穴とは何か、より良い方法はありますか?
これを行っているのは、PHP アプリがあり、CI で新しいコーディングを行う予定だからです。
また、できればバージョン 2 の CI の基本を教えてくれる良い CI doc を見ています。
ありがとう
CodeIgniter でネイティブ セッションを使用するにはどうすればよいですか?
現在、私はで使用session_start
していconstants.php
ます。それは正しい方法ですか?落とし穴とは何か、より良い方法はありますか?
これを行っているのは、PHP アプリがあり、CI で新しいコーディングを行う予定だからです。
また、できればバージョン 2 の CI の基本を教えてくれる良い CI doc を見ています。
ありがとう
通常、使用session_start
してから読み取り/保存する$_SESSION
ことでそれが行われます。私が歴史的に行ってきたことは、session_start
呼び出しをコントローラーのコンストラクター メソッドに配置することです。継承する単一の基本クラスがCI_Controller
あり、これは言語のローカリゼーション、セッションの初期化、および P3P ヘッダー設定などの他の愚かなことを処理します。私の他のすべてのコントローラーはそれを継承し、すべて設定されています。
ネイティブ セッションを使用すると、非常に便利な場合があります。ネイティブ セッションを使用するいくつかのコンポーネントに出くわしましたが、パッチを適用したくありませんでした。(たとえば) ネイティブ セッションを使用する Redis セッション保存ハンドラーがあります。
ここで説明されているネイティブ セッション ライブラリを使用しています。基本的にはCIセッションライブラリと同様に動作しますが、PHPのネイティブセッションを利用するため、ドキュメントに記載されている機能を利用することができます。
Codeigniter 2 を使用するには、記事のディスカッションを参照してください。
セッションライブラリをロードします
$this->load->library('session');
次に、次を使用してデータを設定できます
$this->session->set_userdata((array)$userdata);
session_startメソッドは PHPの組み込みセッション処理を利用しますが、これは CI には推奨されません。公式ドキュメントからの引用:
Session クラスは、ネイティブ PHP セッションを利用しません。独自のセッション データを生成し、開発者により多くの柔軟性を提供します。
http://codeigniter.com/user_guide/libraries/sessions.htmlを見て ください - CodeIgniter はかなりよく文書化されています。
MY_Controller ファイルを読んでみてください。CIを拡張するために設計されたメソッドに従って、各コントローラー全体でこれを継承できます。ここに SESSION のもの (およびその他のクロスサイト) を入れるのが最も理にかなっています。
ここに簡単な CI の紹介記事を書きました: http://www.12devsofxmas.co.uk/2011/12/codeigniter/
多くのフォームなどを含むアプリを作成している場合は、最初にフレームワークをうまくいじってみてください。テンプレートや自動フォーム生成などを処理するために多くのことを書いてきましたが、まだ公開用にパッケージ化されたものはありませんが、私たちが構築しているアプリではすべてうまく機能しています.