Maison >php教程 >PHP开发 >Un court tutoriel sur la façon de laisser thinkphp terminer automatiquement l'affectation de session dans le modèle

Un court tutoriel sur la façon de laisser thinkphp terminer automatiquement l'affectation de session dans le modèle

高洛峰
高洛峰original
2016-12-22 10:34:391172parcourir

Je crois que les utilisateurs qui ont utilisé thinkphp savent que le modèle de thinkphp peut remplir de nombreuses fonctions auxiliaires, telles que la vérification automatique, la complétion automatique, etc. Aujourd'hui, pendant le développement, j'ai rencontré le besoin d'obtenir la valeur de session

puis attribuez automatiquement la valeur lors de l'achèvement automatique. Fonction, veuillez consulter le code pour plus de détails

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"];
  }
}

Ici, vous devez faire attention à la différence entre la dernière fonction de paramètre et ; callback;
fonction : Lors de l'utilisation d'une fonction, elle ira automatiquement dans Common/common.php Pour trouver la fonction correspondante ;
callback : utilisez la méthode de rappel définie dans le modèle actuel

Un court tutoriel sur la façon de laisser thinkphp terminer automatiquement laffectation de session dans le modèle

La fonction de session est une fonction d'opération diversifiée qui est appelée avec différents paramètres. Différentes opérations fonctionnelles peuvent être effectuées, y compris certaines des fonctions suivantes. [-more-]
paramètres d'initialisation de session
Si le paramètre name de la méthode de session est passé dans un tableau, cela signifie les paramètres d'initialisation de session, par exemple :
session(array('name'=> 'session_id',' expire'=>3600));

Les paramètres de session entrante pris en charge incluent :

Un court tutoriel sur la façon de laisser thinkphp terminer automatiquement laffectation de session dans le modèle

La méthode de configuration d'initialisation de session n'a pas besoin d'être appelé manuellement, dans la classe App Il sera appelé automatiquement une fois le travail d'initialisation terminé. Habituellement, le projet n'a besoin que de configurer le paramètre SESSION_OPTIONS. Le paramètre SESSION_OPTIONS est un tableau. Les noms d'index pris en charge sont les mêmes que les précédents. paramètres d'initialisation de session.

Par défaut, le système démarrera automatiquement la session après l'initialisation. Si vous ne souhaitez pas que le système démarre automatiquement la session, vous pouvez définir SESSION_AUTO_START sur false, par exemple :

'SESSION_AUTO_START' =>false

Après avoir désactivé le démarrage automatique, vous pouvez démarrer la session dans le fichier public du projet ou en appelant manuellement session_start ou session('[start]') dans le contrôleur.

affectation de session
L'affectation de session est relativement simple, utilisez-la directement :

session('name','value'); //设置session

équivaut à :

$_SESSION['name'] = 'value';

Valeur de session

Session取值使用:
$value = session('name');
 
相当于使用:
$value = $_SESSION['name'];
suppression de session

session('name',null); // 删除name
 
相当于:
unset($_SESSION['name']);
 
要删除所有的session,可以使用:
session(null); // 清空当前的session
 
相当于:
$_SESSION = array();
jugement de session

Pour juger si une valeur de session a été définie, vous pouvez utiliser

session( '?name' );

Utilisé pour déterminer si la valeur de session nommée name a été définie

Équivalent à :
isset($_SESSION['name']);

gestion de session

La méthode de session prend en charge certaines opérations simples de gestion de session. L'utilisation est la suivante :
session('[nom de l'opération]');

Les noms d'opérations pris en charge incluent :

Un court tutoriel sur la façon de laisser thinkphp terminer automatiquement laffectation de session dans le modèle

Les exemples d'utilisation sont les suivants :

session('[pause]'); // Suspendre l'écriture de la session
session('[start]'); 🎜>session('[destroy ]'); // Détruire la session
session('[regenerate]'); // Régénérer l'identifiant de session


Support de localisation


Si vous transmettez le paramètre préfixe lors de l'initialisation des paramètres de session ou définissez le paramètre SESSION_PREFIX séparément, vous pouvez activer la prise en charge de la gestion de session localisée. Après avoir démarré la session localisée, toutes les opérations d'affectation, d'acquisition de valeur, de suppression et de jugement prendront automatiquement en charge la session localisée.


Une fois la prise en charge des sessions localisées activée, le format des données de session générées passe de l'original

$_SESSION['name'] à $_SESSION['prefix']['name']


En supposant que le préfixe soit défini sur penser, l'opération d'affectation est :

session('name','value'); //Définir la session


est équivalent à :

$_SESSION['think' ]['name'] = 'value';


Opération de valeur :

$value = session('name');


équivaut à utiliser :

$value = $_SESSION['think']['name'];


Opération de suppression :

session('name',null);


Équivalent à :

unset($_SESSION ['think']['name']);


Opération claire :

session(null);


Équivalent à :

unset( $_SESSION['think'] );


Opération de jugement :

session('?name');


Équivalent à :

isset($_SESSION['think'] ['name']);


Pour plus d'articles sur la façon de permettre à thinkphp de terminer automatiquement l'affectation de session dans le modèle, veuillez prêter attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn