thinkphp を使用したことのあるユーザーは、thinkphp のモデルが自動検証、自動補完などの多くの補助機能を完了できることをご存知だと思います。今日の開発中に、自動完了中にセッション値を取得する必要があることに遭遇しました
次に、自動割り当ての機能です。詳細についてはコードを参照してください;
ここでは、最後のパラメータ関数とコールバックの違いに注意する必要があります。
function: 関数を使用する場合、自動的に Common/common.php に移動して、対応する関数を見つけます
callback: 現在のモデルで定義されているコールバック メソッドを使用します
セッション($name, $value='') | |
name (必須): 配列が渡される場合は、セッションの初期化を意味します。null が渡される場合は、現在のセッションをクリアすることを意味します。文字列の場合は、セッションの割り当て、取得、または操作を意味します。 |
値 (オプション): 設定されるセッション値。null が渡された場合、デフォルトは空の文字列です。
|
詳細を見る (特定の使用法に応じて異なる値を返します) |
パラメータ名 | 手順 |
---|---|
ID | session_id 値 |
名前 | セッション名の値 |
パス | session_save_path の値 |
プレフィックス | セッションローカリゼーションスペースプレフィックス |
期限切れ | session.gc_maxlifetime設定値 |
ドメイン | session.cookie_domain設定値 |
use_cookies | session.use_cookies 设置值 |
use_trans_sid | session.use_trans_sid 设置值 |
cache_limiter | session_cache_limiter设置值 |
cache_expire | session_cache_expire设置值 |
type | session hander类型,可以使用hander驱动扩展 |
Session初始化设置方法 无需手动调用,在App类的初始化工作结束后会自动调用,通常项目只需要配置SESSION_OPTIONS参数即可,SESSION_OPTIONS参数的设置是一个数组,支持的索引名和前面的session初始化参数相同。
默认情况下,初始化之后系统会自动启动session,如果不希望系统自动启动session的话,可以设置SESSION_AUTO_START为false,例如:
'SESSION_AUTO_START' =>false
关闭自动启动后可以项目的公共文件或者在控制器中通过手动调用session_start或者session('[start]') 启动session。
session赋值
Session赋值比较简单,直接使用:
session('name','value'); //设置session
相当于:
$_SESSION['name'] = 'value';
session取值
Session取值使用: $value = session('name'); 相当于使用: $value = $_SESSION['name'];
session删除
session('name',null); // 删除name 相当于: unset($_SESSION['name']); 要删除所有的session,可以使用: session(null); // 清空当前的session 相当于: $_SESSION = array();
session判断
要判断一个session值是否已经设置,可以使用
session('?name');
用于判断名称为name的session值是否已经设置
相当于:
isset($_SESSION['name']);
session管理
session方法支持一些简单的session管理操作,用法如下:
session('[操作名]');
支持的操作名包括:
操作名 | 含义 |
---|---|
start | 启动session |
pause | 暂停session写入 |
destroy | 销毁session |
regenerate | 重新生成session id |
ローカリゼーションのサポート
セッション設定の初期化時に接頭辞パラメーターを渡すか、SESSION_PREFIX パラメーターを個別に設定すると、ローカライズされたセッション管理サポートを有効にすることができます。ローカライズされたセッションを開始すると、すべての割り当て、値の取得、削除、および判定の操作が自動的にローカライズされたセッションに対応します。
ローカライズされたセッションのサポートがオンになった後、生成されたセッション データ形式は元の形式から変更されます
$_SESSION['name'] は $_SESSION['prefix']['name'] になります
プレフィックスが think に設定されていると仮定すると、代入操作は次のようになります:
session('name','value') //セッションを設定します
以下と同等:
$_SESSION['think']['name'] = 'value';
値の操作:
$value = セッション('名前');
次の使用と同等:
$value = $_SESSION['think']['name'];
削除操作:
セッション('名前',null);
以下と同等:
unset($_SESSION['think']['name']);
クリア操作:
セッション(null);
以下と同等:
unset($_SESSION['think']);
判定操作:
セッション('?名前');
以下と同等:
isset($_SESSION['think']['name']);