ThinkPHP3.1.3版本新特性概述_php实例
ThinkPHP3.1.3版本有一些特性,还是值得关注的,下面来简单说下。
1、异常方面的改进
新版的ThinkPHP3.1.3重写了异常类ThinkException(其实是完全简化成了直接继承系统Exception类),并且把异常逻辑改进封装到Think类中。主要涉及到Think类的appException方法和halt函数。
并且改进后的异常处理支持系统致命错误的捕获,Think类增加了fatalError方法,原理是使用了
register_shutdown_function(array('Think','fatalError'));
因此可以使得系统致命错误通过统一的异常模板界面友好提示。
2、对PDO参数绑定的支持
因为ThinkPHP3.*版本采用的是混合数据库驱动,同时也支持PDO方式,但之前版本并未针对PDO做优化,只是简单的封装。3.1.3版本完善了对PDO以及Sqlarv的支持,因为PDO和sqlsrv都支持参数绑定操作(注意,不支持参数绑定的数据库和驱动无法使用参数绑定功能)。
系统对参数绑定操作的支持分两种:自动绑定和手动绑定。
自动绑定是对于写入操作(这里包括数据的新增和更新),框架会自动把相关数据转换成参数绑定方式执行,这个部分不需要额外处理,因为sqlsrv只有采用参数绑定的方式传值才能支持UTF8数据写入,但是每次写入数据都要采用手动参数绑定的话,就会显得比较麻烦。为了避免和手动参数绑定冲突,自动参数绑定采用的是对字段名md5编码的方式。
手动绑定,通常用于查询条件之类的,并且采用bind连贯操作方法,例如:
$model->where(array('id'=>':id','name'=>':name'))->bind(array(':id'=>$id,':name'=>$name))->select();
3、增加变量安全获取方法
之前版本通过Action类的_post _get等方法来安全获取变量,虽然没问题,但局限是只能在控制器中获取变量,新版把这一功能独立成一个快捷方法I,可以用于任何地方。
使用方法如下:
I('get.id',0); // 获取$_GET['id'] 如果不存在则默认为0 I('post.name','','htmlspecialchars'); // 获取$_POST['name'] 采用htmlspecialchars方法过滤 I('id'); // 获取id参数 自动判断get或者post I('param.id'); // 获取id参数 自动判断get或者post 和上面用法等效 I('put.id'); // 获取put请求的id参数
还支持获取整个数组,例如:
I('get.'); // 获取$_GET数组 I('post.'); // 获取$_POST数组
在使用I方法的情况下,系统的VAR_FILTERS和DEFAULT_FILTER过滤配置依然有效。
4、where方法的多次调用
模型类的where方法可以支持数组方式的多次调用,例如:
$model->where(array('a'=>1,'c'=>2))->where(array('a'=>3,'b'=>1))->select();
多个where条件的时候,后面的条件会合并到前面的条件,最终的条件等效于:
$model->where(array('a'=>3,'b'=>1,'c'=>2))->select();
5、控制器中的assign方法支持连贯操作
我们可以在控制器使用:
$this->assign('name',$name)->assign('email',$email)->display();
或者:
$this->assign(array('name'=>$name,'email'=>$email))->display();

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sortie de PHP8.3 : aperçu des nouvelles fonctionnalités À mesure que la technologie continue de se développer et que les besoins évoluent, les langages de programmation sont constamment mis à jour et améliorés. En tant que langage de script largement utilisé dans le développement Web, PHP s'est constamment amélioré pour offrir aux développeurs des outils plus puissants et plus efficaces. La version PHP 8.3 récemment publiée apporte de nombreuses nouvelles fonctionnalités et améliorations tant attendues. Jetons un coup d'œil à ces nouvelles fonctionnalités. Initialisation des propriétés non nulles Dans les versions précédentes de PHP, si une propriété de classe ne se voyait pas explicitement attribuer une valeur, sa valeur

Une analyse approfondie des nouvelles fonctionnalités de PHP8 pour vous aider à maîtriser les dernières technologies Au fil du temps, le langage de programmation PHP n'a cessé d'évoluer et de s'améliorer. La version PHP8 récemment publiée offre aux développeurs de nombreuses nouvelles fonctionnalités et améliorations intéressantes, apportant plus de commodité et d'efficacité à notre travail de développement. Dans cet article, nous analyserons en profondeur les nouvelles fonctionnalités de PHP8 et fournirons des exemples de code spécifiques pour vous aider à mieux maîtriser ces dernières technologies. Le compilateur JIT PHP8 introduit la compilation JIT (Just-In-Time)

Les nouvelles fonctionnalités de php8 incluent le compilateur JIT, la déduction de type, les paramètres nommés, les types d'union, les propriétés, les améliorations de la gestion des erreurs, la prise en charge de la programmation asynchrone, les nouvelles fonctions de bibliothèque standard et les extensions de classe anonymes. Introduction détaillée : 1. Compilateur JIT, PHP8 introduit le compilateur JIT, ce qui constitue une amélioration importante des performances. Le compilateur JIT peut compiler et optimiser certains codes d'exécution à haute fréquence en temps réel, améliorant ainsi la vitesse d'exécution. 2. Dérivation de type, PHP8 ; introduit la fonction d'inférence de type, permettant aux développeurs de déduire automatiquement le type de variables lors de la déclaration des variables, etc.

[Interprétation des nouvelles fonctionnalités du langage Go : pour rendre la programmation plus efficace, des exemples de code spécifiques sont nécessaires] Ces dernières années, le langage Go a attiré beaucoup d'attention dans le domaine du développement logiciel, et son concept de conception simple et efficace a attiré de plus en plus développeurs. En tant que langage de programmation typé statiquement, le langage Go continue d'introduire de nouvelles fonctionnalités pour améliorer l'efficacité du développement et simplifier le processus d'écriture de code. Cet article fournira une explication détaillée des dernières fonctionnalités du langage Go et expliquera comment profiter de la commodité apportée par ces nouvelles fonctionnalités à travers des exemples de code spécifiques. Développement modulaire (GoModules) Go langage à partir de 1

Aperçu des nouvelles fonctionnalités de CSS3 : Comment utiliser CSS3 pour obtenir des effets de transition CSS3 est la dernière version de CSS Parmi les nombreuses nouvelles fonctionnalités, la plus intéressante et la plus pratique devrait être l'effet de transition. Les effets de transition peuvent rendre nos pages plus fluides et plus belles lors de l'interaction, offrant aux utilisateurs une bonne expérience visuelle. Cet article présentera l'utilisation de base des effets de transition CSS3, avec des exemples de code correspondants. Attribut transition-property : spécifiez l'effet de transition de la propriété CSS qui doit être transitionné

La nouvelle extension Redis introduite dans PHP8.1 Avec le développement rapide d'Internet, une grande quantité de données doit être stockée et traitée. Afin d’améliorer l’efficacité et les performances du traitement des données, la mise en cache est devenue un élément indispensable. Dans le développement PHP, Redis, en tant que système de stockage clé-valeur hautes performances, est largement utilisé dans les scénarios de mise en cache et de stockage de données. Afin d'améliorer encore l'expérience d'utilisation de Redis en PHP, PHP8.1 introduit une nouvelle extension Redis. Cet article présentera les nouvelles fonctions de cette extension et fournira.

Les nouvelles fonctionnalités du langage Go sont : 1. Le module Go, utilisé pour gérer les dépendances des projets en langage Go ; 2. La gestion des erreurs, ajoutant un nouveau type d'erreur, rendant la gestion des erreurs plus flexible et concise 3. Le package de contexte, utilisé ; pour transmettre les valeurs de plage de requête entre les goroutines ; 4. Incorporation, c'est-à-dire qu'une structure peut être intégrée dans une autre structure ; 5. Package de synchronisation, pour mieux contrôler la synchronisation et la communication entre les goroutines ; types d'erreurs ; 7. Les génériques permettent aux développeurs d'écrire de manière plus flexible.

Aperçu des nouvelles fonctionnalités de CSS3 : Comment utiliser CSS3 pour obtenir une mise en page centrée horizontalement Dans la conception et la mise en page Web, une mise en page centrée horizontalement est une exigence courante. Dans le passé, nous utilisions souvent des astuces JavaScript ou CSS complexes pour y parvenir. Cependant, CSS3 a introduit de nouvelles fonctionnalités qui rendent les mises en page centrées horizontalement plus simples et plus flexibles. Cet article présentera quelques nouvelles fonctionnalités de CSS3 et fournira quelques exemples de code pour montrer comment utiliser CSS3 pour obtenir une mise en page centrée horizontalement. 1. Utilisez flexbox pour mettre en page le fichier
