ThinkPHP6 を使用して ORM を実装し、データベース操作を自動的に検証する方法
Web アプリケーションの機能が増加し続けるにつれて、開発者はデータベース検証ルールの作成に多くの時間を費やす必要があることがよくあります。 ORM (オブジェクト リレーショナル マッピング) フレームワークを使用すると、データベース検証ルールとビジネス ロジックを分離できるため、時間を節約し、開発効率を向上できます。その中で、ThinkPHP6 は自動検証機能を提供しており、ORM 自動検証データベース操作を迅速に実装するのに役立ちます。次に、ThinkPHP6 を使用して ORM 自動検証データベース操作を実装する方法を紹介します。
- ThinkPHP6 のインストール
まず、ThinkPHP6 をインストールする必要があります。次のコマンドで Composer を使用して ThinkPHP6 をインストールできます:
composer create-project topthink/think tp6 --prefer-dist
もちろん、次のコマンドを実行することもできます。 ThinkPHP6 公式サイト (https://www.thinkphp.cn) へ 最新のフレームワークのソースコードをダウンロードします。
- データベース接続の構成
ORM 自動検証を実装する前に、まずデータベース接続を構成する必要があります。これは、プロジェクト ルート ディレクトリの config/database.php
で構成できます。例:
return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'test', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'password', // 数据库连接端口 'hostport' => '3306', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 是否自动写入时间戳字段 'auto_timestamp' => false, // 是否需要进行SQL性能分析 'sql_explain' => false, // 开启断线重连 'break_reconnect' => true, ];
- モデルの作成と使用
ThinkPHP6 の場合、モデルを使用してデータベースと対話します。次のコマンドを使用してモデルを作成できます:
php bin/think make:model Test
このコマンドは app
に作成されます。ディレクトリ Test.php
ファイルには、空のモデル クラス Test
が含まれています。このクラスでは、データベース操作テーブル名、主キー名、自動タイムスタンプ、その他の定義を指定できます。例:
<?php namespace appmodel; use thinkModel; class Test extends Model { // 指定表名 protected $table = 'test'; // 指定主键名 protected $pk = 'id'; // 自动时间戳 protected $autoWriteTimestamp = true; }
このモデル クラスでは、いくつかのデータ検証ルールも定義できます。例:
<?php namespace appmodel; use thinkModel; class Test extends Model { // 指定表名 protected $table = 'test'; // 指定主键名 protected $pk = 'id'; // 自动时间戳 protected $autoWriteTimestamp = true; // 定义验证规则 protected $validate=[ 'name'=>'require|max:10', 'age'=>'require|integer|between:1,100', 'email'=>'email', ]; }
この例では、3 つの検証ルールを定義します: name
Required、最大長は 10、age
Required、整数である必要があります。値は 1 ~ 100 で、email
は電子メール形式である必要があります。これらのルールは、モデル データを操作するときに自動的に検証されます。
- 自動検証機能を使用する
データベース操作にモデルを使用する場合は、対応するメソッドを呼び出すだけです (例:
// 添加数据 $data = [ 'name' => '张三', 'age' => '18', 'email'=> 'zhangsan@test.com', ]; $model = new Test; $result = $model->save($data); if ($result) { echo '数据添加成功'; } else { echo '数据添加失败'; } // 更新数据 $data = [ 'id' => 1, 'name' => '李四', 'age' => '20', 'email'=> 'lisi@test.com', ]; $model = new Test; $result = $model->save($data, ['id' => 1]); if ($result) { echo '数据更新成功'; } else { echo '数据更新失败'; } // 删除数据 $model = new Test; $result = $model->destroy(1); if ($result) { echo '数据删除成功'; } else { echo '数据删除失败'; } // 查询数据 $model = new Test; $result = $model->where('id', 1)->find(); if ($result) { echo '数据查询成功'; } else { echo '数据查询失败'; }
)。 「これらのメソッドを使用する場合、ThinkPHP6 はモデルで定義された検証ルールに基づいて自動的に検証します。」検証が失敗した場合は、例外がスローされ、失敗の理由が返されます。
- カスタム検証メッセージ
自動検証では、静的属性 message
をモデル クラスに追加することで、検証が失敗したときの検証メッセージを定義できます。 。 エラーメッセージ。例:
<?php namespace appmodel; use thinkModel; class Test extends Model { // 指定表名 protected $table = 'test'; // 指定主键名 protected $pk = 'id'; // 自动时间戳 protected $autoWriteTimestamp = true; // 定义验证规则 protected $validate=[ 'name'=>'require|max:10', 'age'=>'require|integer|between:1,100', 'email'=>'email', ]; // 定义验证失败消息 protected $message = [ 'name.require' => '姓名不能为空', 'name.max' => '姓名长度不能超过10个字符', 'age.require' => '年龄不能为空', 'age.integer' => '年龄必须为整数', 'age.between' => '年龄取值必须在1到100之间', 'email.email' => ' email格式不正确 ', ]; }
この例では、検証失敗のエラー メッセージを定義します。データ検証の失敗が検出された場合、ThinkPHP6 は定義されたメッセージに従って、対応するエラー情報を自動的に返します。
まとめ
ThinkPHP6の自動検証機能を利用することで、データベース動作のORM自動検証を迅速に実装することができ、開発効率の向上とエラーの削減を実現します。モデル クラスでデータ検証ルールとメッセージ プロンプトを定義すると、開発と保守がより便利になります。この記事が皆様のお役に立ち、皆様が ThinkPHP6 をより快適に使用できるようになれば幸いです。
以上がThinkPHP6 を使用して ORM を実装し、データベース操作を自動的に検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

PHP でのデータベース操作は、オブジェクトをリレーショナル データベースにマップする ORM を使用して簡素化されます。 Laravel の EloquentORM を使用すると、オブジェクト指向構文を使用してデータベースと対話できます。モデル クラスを定義したり、Eloquent メソッドを使用したり、実際にブログ システムを構築したりすることで ORM を使用できます。

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利点を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規模なWebサイトやエンタープライズシステムで広く使用されています。
