2012-05-07 15 views
1

CodeIgniterでネイティブセッションを使用するにはどうすればよいですか?Codeigniter 2では、どのようにネイティブセッションを使用しますか?

現在、私はsession_startconstants.phpに使用しています。それは正しい方法ですか?落とし穴とは何ですか?良い方法がありますか?

これは私たちがPHPアプリケーションを持っているためです。私たちはCIで新しいコーディングを行う予定です。

はまた、私は

おかげ

+1

セッションを処理してDB内のストレージを管理するためのライブラリ(http://codeigniter.com/user_guide/libraries/sessions.html)が既にある間にネイティブセッション処理を使用する理由は何ですか? –

+0

なぜなら、そのためには、ワニスのようなキャッシングによる痛みです。 –

+0

以下を確認してください:https://github.com/nixarsoft/native-php-session-codeigniter – kodmanyagha

答えて

4

通常、session_startを使用し、次に$_SESSIONに読み込み/格納します。私が歴史的に行ったことは、コントローラのコンストラクタメソッドにsession_start呼び出しを置くことです:私はCI_Controllerから継承する単一の基本クラスを持ち、これは言語のローカリゼーション、セッション初期化、P3Pヘッダ設定のような愚かな処理を処理します。私の他のすべてのコントローラーはそれを継承し、それからそれらはすべて設定されます。

ネイティブセッションを使用すると、非常に便利な場合があります。ネイティブセッションを使用するコンポーネントがいくつか出てきましたが、私は単純にパッチを適用したくありませんでした。ネイティブセッションを使用するレディスセッションセーブハンドラがあります。これは、CIのために書き直すことができますが、そこにあるものを使用するだけではありません。

+0

あなたはCI_Controllerから継承し、すべてのクラス(コントローラ)を継承する基本クラスが1つあります。 – aWebDeveloper

+0

そこには、ネイティブセッションを開始するなど、必要な共通機能をすべて実行できます。 – Femi

+0

thx、それはとてもうまく動作します – airbai

2

が次にあなたが設定することができ

$this->load->library('session'); 

とのセッションライブラリをロードバージョン2のために、好ましくは、私のCIの基本を教えて良いCIドキュメントで探していますデータ使用

$this->session->set_userdata((array)$userdata); 

session_startメソッドはPHPの組み込みセッション処理を利用しています。これはCIには推奨されません。公式ドキュメントからの引用:

セッションクラスでは、ネイティブのPHPセッションは使用されません。独自のセッションデータを として生成し、開発者に柔軟性を提供します。

http://codeigniter.com/user_guide/libraries/sessions.html を見てください - CodeIgniterのはかなりよく文書化されています。

+2

まあ、CIセッションの扱いはひどいです。私はそれを使用することをお勧めしません – idok

+0

なぜそれは恐ろしいですか? – subZero

+0

暗号化の後では4kという制限があり、ワニスではうまく動作しないので恐ろしいです。 –

2

私はhereと記載されているネイティブセッションライブラリを使用しています。基本的には、これはCIセッションライブラリと同じように動作しますが、PHPのネイティブセッションを使用するので、docsに記述されている関数を使用することができます。

Codeigniter 2を使用するには、discussion of the articleを参照してください。

1

MY_Controllerファイルを読んでみてください。 CIを拡張するための設計された方法に応じて、各コントローラーでこれを継承することができます。あなたのSESSIONのもの(そして他の何かのクロスサイト)をここに入れるのが最も理にかなっています。

私はここで、単純なCIのイントロの記事を書いた:http://www.12devsofxmas.co.uk/2011/12/codeigniter/

あなたがなどのフォームのたくさんのアプリを作成している場合は、フレームワークとの最初の周りには本当に良いプレーを持っています。私は、テンプレート、自動フォーム生成などを処理するために多くのものを書いています。それは公衆の配布用にはまだパッケージ化されていませんが、私たちが構築しているアプリケーションにとってはうってつけです。

関連する問題