yurunsoft / tdengine-orm
Installs: 1 432
Dependents: 1
Suggesters: 0
Security: 0
Stars: 11
Watchers: 3
Forks: 2
Open Issues: 1
Requires
- php: >=7.0
- doctrine/annotations: ^1.13
- symfony/polyfill-php81: *
- yurunsoft/tdengine-restful-connector: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0.2
- phpstan/phpstan: ^1.0.2
- phpunit/phpunit: >=7
- swoole/ide-helper: ~4.8
- yurunsoft/ide-helper: ~1.0
This package is auto-updated.
Last update: 2024-10-25 10:49:09 UTC
README
简介
基于 tdengine-restful-connector、php-tdengine 开发的 TDEngine ORM。
支持创建超级表、创建表、批量插入数据。
此项目支持在 PHP >= 7.1 的项目中使用。
支持在 ThinkPHP、Laravel、Swoole、imi 等项目中使用
在 Swoole 环境中支持协程化,不会阻塞!
技术支持 QQ 群: 17916227,如有问题可以及时解答和修复。
安装
composer require yurunsoft/tdengine-orm
使用
使用连接管理器:
// 增加名称为 test 的连接配置 \Yurun\TDEngine\TDEngineManager::setClientConfig('test', new \Yurun\TDEngine\ClientConfig([ // 'host' => '127.0.0.1', // 'hostName' => '', // 'port' => 6041, // 'user' => 'root', // 'password' => 'taosdata', // 'ssl' => false, // 'timestampFormat' => \Yurun\TDEngine\Constants\TimeStampFormat::LOCAL_STRING, // 'keepAlive' => true, ])); // 设置默认数据库为test \Yurun\TDEngine\TDEngineManager::setDefaultClientName('test'); // 获取客户端对象(\Yurun\TDEngine\Client) $client = \Yurun\TDEngine\TDEngineManager::getClient(); // 不设置连接驱动时,会判断安装扩展优先使用扩展 // 设置连接驱动为 RESTful \Yurun\TDEngine\Orm\TDEngineOrm::setClientHandler(new \Yurun\TDEngine\Orm\ClientHandler\Restful\Handler()); // 设置连接驱动为 PHP 扩展 \Yurun\TDEngine\Orm\TDEngineOrm::setClientHandler(new \Yurun\TDEngine\Orm\ClientHandler\Extension\Handler());
定义模型:
<?php declare(strict_types=1); namespace Yurun\TDEngine\Orm\Test\Model; use Yurun\TDEngine\Orm\Annotation\Field; use Yurun\TDEngine\Orm\Annotation\Table; use Yurun\TDEngine\Orm\Annotation\Tag; use Yurun\TDEngine\Orm\BaseModel; use Yurun\TDEngine\Orm\Enum\DataType; /** * @Table(name="device_log", database="device") */ class DeviceLogModel extends BaseModel { /** * @Field(type=DataType::TIMESTAMP) * * @var int */ public $time; /** * @Tag(type=DataType::NCHAR, length=32, name="device_id") * * @var string */ public $deviceId; /** * @Field(type=DataType::FLOAT) * * @var float */ public $voltage; /** * @Field(type=DataType::FLOAT, name="electric_current") * * @var float */ public $electricCurrent; }
创建超级表:
DeviceLogModel::createSuperTable();
创建表:
$table = '表名'; $deviceId = '00000001'; // 这是 TAGS DeviceLogModel::createTable($table, [$deviceId]);
插入数据:
$record = new DeviceLogModel([ // 初始化模型数据 ], '表名'); // $record->xxx = xxx; // 设置一些字段值 $record->insert();
批量插入数据:
$record1 = new DeviceLogModel([ // 初始化模型数据 ], '表名1'); $record2 = new DeviceLogModel([ // 初始化模型数据 ], '表名2'); DeviceLogModel::batchInsert([$record1, $record2]);