>  기사  >  백엔드 개발  >  thinkphp가 model_php 기술에서 세션 할당을 자동으로 완료하도록 하는 방법에 대한 작은 튜토리얼

thinkphp가 model_php 기술에서 세션 할당을 자동으로 완료하도록 하는 방법에 대한 작은 튜토리얼

WBOY
WBOY원래의
2016-05-16 20:36:321096검색

자동 할당 기능에 대한 자세한 내용은 코드를 참조하세요.


class ArticlelModel extends Model {
  
  protected $_auto = array ( 
    array('addtime','time',1,'function'),
    array('username','getName',1,'callback')
  );
  
  //这个函数获取session里的name值
  protected function getName(){
    return $_SESSION["name"];
  }
}
여기서 마지막 매개변수 함수와 콜백의 차이점에 주의해야 합니다.

함수: 함수를 사용하면 자동으로 Common/common.php로 이동하여 해당 함수를 찾습니다.
콜백: 현재 모델에 정의된 콜백 메소드를 사용합니다

세션 기능은 다양한 매개변수를 전달하여 다음 기능을 포함하여 다양한 기능 작업을 완료할 수 있는 다양한 작업 기능입니다. [-더보기-]
세션 초기화 설정
세션 메소드의 name 매개변수가 배열로 전달되면 이는 세션 초기화 설정을 의미합니다. 예:
session(array('name'=>'session_id','expire'=>3600));

지원되는 세션 매개변수는 다음과 같습니다.


매개변수 이름 설명
아이디 session_id 값
이름 session_name 값
경로 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('[pause]'); // 세션 쓰기 일시 중지
session('[start]'); // 세션 시작
session('[destroy]'); // 세션 삭제
session('[regenerate]'); // 세션 ID 재생성

현지화 지원

세션 설정 초기화 시 prefix 매개변수를 전달하거나 SESSION_PREFIX 매개변수를 별도로 설정하면 현지화된 세션 관리 지원을 활성화할 수 있습니다. 현지화 세션을 시작한 후 모든 할당, 값 획득, 삭제 및 판단 작업은 자동으로 현지화 세션을 지원합니다.

현지화된 세션 지원을 켜면 생성된 세션 데이터 형식이 원본에서 변경됩니다.
$_SESSION['이름']은 $_SESSION['접두사']['이름']이 됩니다.

접두사가 think로 설정되어 있다고 가정하면 할당 연산은 다음과 같습니다.
session('name','value'); //세션 설정

다음과 동일:
$_SESSION['think']['name'] = '값';

값 연산:
$value = 세션('이름');

은 다음을 사용하는 것과 같습니다.
$value = $_SESSION['생각']['이름'];

삭제 작업:
세션('이름',null);

다음과 동일:
unset($_SESSION['생각']['이름']);

클리어 작업:
세션(널)

다음과 동일:
unset($_SESSION['think']);

심판작전:
세션('?이름');

다음과 동일:
isset($_SESSION['생각']['이름']);

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.