ホームページ バックエンド開発 PHPチュートリアル ThinkPHP3.1.3版本新特性概述_php实例

ThinkPHP3.1.3版本新特性概述_php实例

Jun 07, 2016 pm 05:18 PM
新機能

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();

ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 8.3 リリース: 新機能の概要 PHP 8.3 リリース: 新機能の概要 Nov 27, 2023 pm 12:52 PM

PHP8.3 リリース: 新機能の概要 テクノロジーが発展し、ニーズが変化するにつれて、プログラミング言語は常に更新され、改善されています。 Web 開発で広く使用されているスクリプト言語として、PHP は開発者により強力で効率的なツールを提供するために絶えず改良されてきました。最近リリースされた PHP 8.3 バージョンには、待望の新機能と改善点が多数含まれています。これらの新機能の概要を見てみましょう。 null 以外のプロパティの初期化 PHP の過去のバージョンでは、クラス プロパティに明示的に値が割り当てられていない場合、その値は

PHP8 の新機能を学び、最新テクノロジーを深く理解するためのガイド PHP8 の新機能を学び、最新テクノロジーを深く理解するためのガイド Dec 23, 2023 pm 01:16 PM

最新テクノロジーを習得するために役立つ、PHP8 の新機能の詳細な分析 PHP プログラミング言語は、時間の経過とともに常に進化し、改善されています。最近リリースされた PHP8 バージョンは、開発者に多くのエキサイティングな新機能と改善を提供し、開発作業にさらなる利便性と効率をもたらします。この記事では、PHP8 の新機能を詳しく分析し、これらの最新テクノロジーをよりよく習得するのに役立つ具体的なコード例を提供します。 JIT コンパイラー PHP8 では JIT (Just-In-Time) コンパイルが導入されています

php8の新機能は何ですか php8の新機能は何ですか Sep 25, 2023 pm 01:34 PM

php8 の新機能には、JIT コンパイラ、型推論、名前付きパラメータ、共用体型、プロパティ、エラー処理の改善、非同期プログラミングのサポート、新しい標準ライブラリ関数、匿名クラス拡張機能が含まれます。詳細な紹介: 1. JIT コンパイラー、PHP8 は、重要なパフォーマンスの向上である JIT コンパイラーを導入します。JIT コンパイラーは、一部の高頻度の実行コードをリアルタイムでコンパイルおよび最適化できるため、実行速度が向上します。2. 型導出、PHP8型推論機能を導入し、開発者が変数宣言時などに変数の型を自動的に推測できるようにします。

Go 言語の新機能の解釈: プログラミングをより効率的にする Go 言語の新機能の解釈: プログラミングをより効率的にする Mar 10, 2024 pm 12:27 PM

【Go言語の新機能解説:プログラミングを効率化するには具体的なコード例が必要】 近年、ソフトウェア開発の分野でGo言語が注目を集めており、そのシンプルで効率的な設計思想がますます注目を集めています。開発者。 Go 言語は静的型付けプログラミング言語として、開発効率を向上させ、コード作成プロセスを簡素化するための新機能を導入し続けています。この記事では、Go 言語の最新機能を詳しく説明し、これらの新機能によってもたらされる利便性を具体的なコード例を通じて体験する方法について説明します。モジュール開発(GoModules) 1からのGo言語

CSS3 の新機能の概要: CSS3 を使用してトランジション効果を実現する方法 CSS3 の新機能の概要: CSS3 を使用してトランジション効果を実現する方法 Sep 09, 2023 am 11:27 AM

CSS3 の新機能の概要: CSS3 を使用してトランジション効果を実現する方法 CSS3 は CSS の最新バージョンですが、数多くの新機能の中で最も興味深く実用的なのはトランジション効果でしょう。トランジション効果は、インタラクション中にページをよりスムーズで美しくし、ユーザーに優れた視覚体験を提供します。この記事では、CSS3 トランジション効果の基本的な使用法を、対応するコード例とともに紹介します。 transition-property 属性: 遷移する必要がある CSS プロパティの遷移効果を指定します。

PHP8.1 で導入された新しい Redis 拡張機能 PHP8.1 で導入された新しい Redis 拡張機能 Jul 07, 2023 pm 09:41 PM

PHP8.1 で導入された新しい Redis 拡張機能 インターネットの急速な発展に伴い、大量のデータを保存および処理する必要があります。データ処理の効率とパフォーマンスを向上させるために、キャッシュは不可欠な部分になっています。 PHP 開発では、Redis は高性能のキー/値ストレージ システムとして、キャッシュやデータ ストレージのシナリオで広く使用されています。 PHP で Redis を使用するエクスペリエンスをさらに向上させるために、PHP8.1 では新しい Redis 拡張機能が導入されています。この記事では、この拡張機能の新機能と提供内容を紹介します。

Go言語の新機能は何ですか? Go言語の新機能は何ですか? Aug 24, 2023 pm 01:36 PM

Go 言語の新機能は次のとおりです: 1. Go モジュール、Go 言語プロジェクトの依存関係を管理するために使用されます; 2. エラー処理、新しいエラー タイプのエラーを追加し、エラー処理をより柔軟かつ簡潔にします; 3. コンテキスト パッケージ、使用されます。ゴルーチン間でリクエスト範囲の値を転送する; 4. 埋め込み、つまり、ある構造を別の構造に埋め込むことができる; 5. 同期パッケージ、ゴルーチン間の同期と通信をより適切に制御する; 6. エラー値、異なる値をより適切に区別するエラーの種類; 7. ジェネリックを使用すると、開発者はより柔軟に記述できます。

CSS3 の新機能の概要: CSS3 を使用して水平方向の中央揃えのレイアウトを実現する方法 CSS3 の新機能の概要: CSS3 を使用して水平方向の中央揃えのレイアウトを実現する方法 Sep 09, 2023 pm 04:09 PM

CSS3 の新機能の概要: CSS3 を使用して水平方向中央レイアウトを実現する方法 Web デザインとレイアウトでは、水平方向中央レイアウトが一般的な要件です。これまでは、これを実現するために複雑な JavaScript や CSS のトリックを使用することがよくありました。ただし、CSS3 では、水平方向中央揃えのレイアウトをよりシンプルかつ柔軟にするいくつかの新機能が導入されました。この記事では、CSS3 のいくつかの新機能を紹介し、CSS3 を使用して水平方向の中央揃えのレイアウトを実現する方法を示すコード例をいくつか示します。 1. フレックスボックスを使用してファイルをレイアウトする

See all articles