Cet article vous apporte des connaissances pertinentes sur thinkphp, qui présente principalement des problèmes liés aux fonctions des lettres, notamment les méthodes A, B, C, D, etc. J'espère qu'il sera utile à tout le monde.
Apprentissage recommandé : "thinkphp learning"
est utilisée pour instancier le contrôleur en interne, le format d'appel :
// A('[项目://][分组/]模块','控制器层名称')$User = A('User');$User = A('Admin://User');
Après avoir instancié le contrôleur, vous pouvez appeler la méthode dans le contrôleur, mais Il convient de noter que dans le cas d'appels inter-projets, si votre méthode de fonctionnement comporte des opérations de variables spéciales pour le contrôleur actuel, il y aura des problèmes inconnus. Par conséquent, d'une manière générale, la recommandation officielle nécessite des appels publics au niveau du contrôleur. développé indépendamment et n’a pas trop de dépendances.
Il s'agit d'une nouvelle fonction qui naît avec le comportement et peut exécuter un certain comportement. Par exemple,
B('app_begin');
consiste à exécuter toutes les fonctions définies par ce comportement avant le démarrage du projet. Prend en charge 2 paramètres, le deuxième paramètre doit accepter un tableau, tel que la méthode
B('app_begin', ["name" => "tdweb","time"=>time()]);
La méthode C est la méthode de Think pour définir, obtenir et enregistrer les paramètres de configuration, et est utilisée plus fréquemment.
Paramètres de configuration définis de manière dynamique. Les paramètres de configuration ne sont pas sensibles à la casse, mais il est recommandé de conserver les spécifications de définition de configuration en lettres majuscules uniformes.
C('DB_NAME','think');
Prend en charge le réglage des paramètres de configuration de deuxième niveau. Il n'est pas recommandé que les paramètres de configuration dépassent le deuxième niveau. Par exemple :
C('USER.USER_ID',8);
Si vous souhaitez définir plusieurs paramètres, vous pouvez utiliser les paramètres par lots, par exemple :
$config['user_id'] = 1;$config['user_type'] = 1;C($config);
Si les paramètres de configuration entrants sont vides, cela signifie obtenir tous les paramètres :
$config = C();
Méthode D doit être utilisé Il existe de nombreuses méthodes utilisées pour instancier des classes de modèles personnalisées. Il s'agit d'une encapsulation de l'instanciation de la classe Model par le framework Think et implémente le mode singleton, prenant en charge les appels inter-projets et de groupe. Le format d'appel est le suivant :
D('[项目://][分组/]模型','模型层名称')
. méthode La valeur de retour est l'objet modèle instancié.
La méthode D peut détecter automatiquement la classe de modèle. Si une classe de modèle personnalisée existe, la classe de modèle personnalisée sera instanciée. Si elle n'existe pas, la classe de base Model sera instanciée en même temps. être répété. Accédez à l'instanciation. L'utilisation la plus courante de la méthode
D consiste à instancier un modèle personnalisé du projet en cours, par exemple :
// 实例化 User 模型$User = D('User');
La méthode F est en fait un sous-ensemble de la méthode S, utilisée uniquement pour la mise en cache simple des données, et seulement Il prend en charge le format de fichier mais ne prend pas en charge la période de validité du cache. Parce qu'il utilise la méthode de retour, son efficacité est supérieure à la méthode S, nous l'appelons donc également la méthode de cache rapide. Les caractéristiques de la méthode
F sont :
F('data','test data');
Le chemin de démarrage de l'enregistrement par défaut est
DATA_PATH(cette constante se trouve sous RUNTIME_PATH.'Data/' dans la configuration par défaut), ce qui signifie que le nom du fichier sera généré DATA_PATH .'data.' fichier cache. Remarque : assurez-vous que votre identifiant de cache est unique pour éviter l'écrasement des données et les conflits.
La prochaine fois que vous lirez des données mises en cache, utilisez :
$Data = F('data');
Nous pouvons les enregistrer dans un sous-répertoire, par exemple :
F('user/data',$data); // 缓存写入F('user/data'); // 读取缓存
générera un fichier cache
DATA_PATH.'user/data.', si le sous-répertoire de l'utilisateur le fait not exist S'il existe, il sera créé automatiquement. Il peut également prendre en charge des sous-répertoires multi-niveaux, par exemple : F('level1/level2/data',$data);
F('data',$data,TEMP_PATH);
Delete. cache
F('data',NULL);
Méthode G
Marquer la position
G('begin');
signifie marquer la position actuelle comme balise de début. Il enregistre également le temps d'exécution de l'emplacement actuel et, si l'environnement le prend en charge, l'utilisation de la mémoire. Les marqueurs de la méthode G peuvent être appelés n’importe où.
Statistiques de temps d'exécution
G('begin'); // ...其他代码段G('end'); // ...也许这里还有其他代码 // 进行统计区间echo G('begin','end').'s';
signifie compter le temps d'exécution depuis le début position à la position de fin (l'unité est la seconde), le début doit être une position marquée. Si la position de fin n'a pas été marquée à ce moment, la position actuelle sera automatiquement marquée comme étiquette de fin. Le résultat de sortie est similaire à : . 0.0056s
G('begin','end',6).'s';
Statistiques de surcharge de mémoire
Si votre environnement prend en charge les statistiques d'utilisation de la mémoire, vous pouvez le faire. utilisez également la méthode G pour effectuer des statistiques de surcharge de mémoire par intervalles (unité : ko), par exemple :
echo G('begin','end','m').'kb';
Le troisième paramètre utilise m pour représenter les statistiques de surcharge de mémoire, et le résultat de sortie peut être :
625kb
正如你所见到的一样,I 方法是 Thinkphp 众多单字母函数中的新成员,其命名来自于英文 Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:
I('变量类型.变量名',['默认值'],['过滤方法'])
变量类型是指请求方式或者输入类型,包括:
方式 | 说明 |
---|---|
get | 获取 GET 参数 |
post | 获取 POST 参数 |
param | 自动判断请求类型获取 GET、POST 或者 PUT 参数 |
request | 获取 REQUEST 参数 |
put | 获取 PUT 参数 |
session | 获取 $_SESSION 参数 |
cookie | 获取 $_COOKIE 参数 |
server | 获取 $_SERVER 参数 |
globals | 获取 $GLOBALS 参数 |
注意:变量类型不区分大小写。变量名则严格区分大小写。
默认值和过滤方法均属于可选参数。
L 方法用于启用多语言的情况下,设置和获取当前的语言定义。
调用格式:
L('语言变量',['语言值'])
M 方法用于实例化一个基础模型类,和 D 方法的区别在于:
D 方法的强大则体现在你封装的自定义模型类有多强,不过随着新版 Think 框架的基础模型类的功能越来越强大,M 方法也比 D 方法越来越实用了。
M 方法的调用格式:
M('[基础模型名:]模型名','数据表前缀','数据库连接信息')
R 方法用于调用某个控制器的操作方法,是 A 方法的进一步增强和补充。
R 方法的调用格式:
R('[项目://][分组/]模块/操作','参数','控制器层名称')
可以通过 R 方法在其他控制器里面调用这个操作方法(一般 R 方法用于跨模块调用)
$data = R('User/detail',array('5'));
官方的建议是不要在同一层多太多调用,会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助3.1的新特性多层控制器,单独添加一个控制器层用于接口调用
S 方法还支持对当前的缓存方式传入缓存参数,例如:
S('data',$Data,3600,'File',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/'));
为了更方便的输出模板文件,新版封装了一个 T 函数用于生成模板文件名。
T([资源://][模块@][主题/][控制器/]操作,[视图分层])
T 函数的返回值是一个完整的模板文件名,可以直接用于 display 和 fetch 方法进行渲染输出。
U 方法用于完成对 URL 地址的组装,特点在于可以自动根据当前的 URL 模式和设置生成对应的 URL 地址,格式为:
U('地址','参数','伪静态','是否跳转','显示域名');
在模板中使用 U 方法而不是固定写死 URL 地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。
推荐学习:《thinkphp框架》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!