現在のユーザー ID、現在のユーザー レバーなど、Web サイトで使用するグローバル変数をいくつか保存したいと考えています。それを行うのに最適な場所はどこですか、それとも可能ですか?
「$this」がそこで認識されないため、constants.php に設定しても機能しません。
これが必要な主な理由は、セッションを使用するのが好きではないためです (文字列を書くの$this->session->userdata('session_name')
はあまり実用的ではないと考えています。
現在のユーザー ID、現在のユーザー レバーなど、Web サイトで使用するグローバル変数をいくつか保存したいと考えています。それを行うのに最適な場所はどこですか、それとも可能ですか?
「$this」がそこで認識されないため、constants.php に設定しても機能しません。
これが必要な主な理由は、セッションを使用するのが好きではないためです (文字列を書くの$this->session->userdata('session_name')
はあまり実用的ではないと考えています。
この場合にできることは、class My_Controller extends CI_Controller
. 特定のコントローラー機能を実際にロードする前に、必要なすべての機能を整理します。
その後、作成した後続のクラスは次のように実行できますclass Whatever extends My_Controller
。
My_Controller
編集: Application > Core フォルダー内にクラスを配置する必要があることを忘れていました。
それは可能ですが、Codeigniter が設計された方法ではありません。セッションは実際にはこの種のもの (つまり、あるページ ビューから次のページ ビューまで持続するもの) の場所ですが、必要に応じて、美しさのためにセッション呼び出しをライブラリにラップすることもできます。このようなもの:
// in libraries/User.php
class User {
protected $ci;
public function __construct() {
$this->ci = &get_instance();
}
public function id() {
return $this->ci->session->userdata('user_id');
}
// etc, etc.
}
のようないくつかのヘルパーを作成したらid()
、それらを使用して、アプリケーションの他の場所にある関連する変数にアクセスできます。
$this->load->library('user');
echo 'Current user ID is: ' . $this->user->id();