1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yurunsoft-influxdb-orm

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

influxdb-orm

Последняя версия Версия PHP Лицензия IMI

Описание

ORM для временных данных InfluxDB, который завершает эру отсутствия ORM для InfluxDB. Поддерживает основные операции, работает в окружениях php-fpm и Swoole, легко переключается между ними. Может использоваться во всех традиционных фреймворках и всех фреймворках Swoole!

Composer

Проект можно установить с помощью Composer, следуя правилам автоматической загрузки PSR-4. Добавьте следующее содержимое в ваш composer.json:

{
   "require": {
       "yurunsoft/influxdb-orm": "^1.1.0"
   }
}

Затем выполните composer update для установки.

Использование

Поддержка Swoole

Выполните в событии WorkerStart:

\Yurun\Util\YurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class);

Определение модели

Подробнее см. example/test.php

<?php
namespace Yurun\InfluxDB\ORM\Example\Model;
use Yurun\InfluxDB\ORM\BaseModel;
use Yurun\InfluxDB\ORM\Annotation\Tag;
use Yurun\InfluxDB\ORM\Annotation\Field;
use Yurun\InfluxDB\ORM\Annotation\Value;
use Yurun\InfluxDB\ORM\Annotation\Timestamp;
use Yurun\InfluxDB\ORM\Annotation\Measurement;
/**
* @Measurement(name="aaa")
*/
class A extends BaseModel
{
   /**
    * @Tag(name="id", type="int")
    *
    * @var int
    */
   private $id;
   /**
    * @Field(name="name", type="string")
    *
    * @var string
    */
   private $name;
   /**
    * @Timestamp(precision="s")
    *
    * @var int|string
    */
   private $time;
   /**
    * @Value
    *
    * @var int
    */
``````markdown
### Запись данных
```php
use Yurun\InfluxDB\ORM\InfluxDBManager;
// Установка имени клиента как test, по умолчанию база данных db_test
InfluxDBManager::setClientConfig('test', '127.0.0.1', 'bkgrnd8086', '', '', false, false, 0, 0, 'db_test', '/');
// Установка по умолчанию базы данных как test
InfluxDBManager::setDefaultClientName('test');
// Запись данных, поддерживаются объекты и массивы
$r = A::write([
 A::create(mt_rand(1, 999999), time(), time(), mt_rand(1, 100)),
 ['id'=>1, 'name'=>'aaa', 'time'=>time(), 'value'=>mt_rand(1, 100)],
]);
var_dump($r);

Запрос данных

// Получение объекта запроса
$query = A::query();
// Обычное использование, стандартные методы
$query->field('id,name')
      ->from('table')
      ->where([
          'id' => 1
      ])->where('id', '=', 1)
      ->orWhere('id', '=', 1)
      ->order('time', 'desc')
      ->group('id')
      ->limit(0, 10);
// Выполнение запроса, аналогично официальному клиенту InfluxDB
$resultSet = $query->select();
// Преобразование результата запроса в модель, подходит для запроса записей, а не статистики
$model = $resultSet->getModel(A::class);
// Преобразование результата запроса в список моделей, подходит для запроса записей, а не статистики
$list = $resultSet->getModelList(A::class);
```### Быстрый поиск моделей
Подходит для запроса записей, а не статистических данных
```php
use Yurun\InfluxDB\ORM\Query\QueryBuilder;
// Преобразование результатов запроса в модель, подходит для запроса записей, а не статистических данных
$model = A::find(function(QueryBuilder $query){
    $query->where('id', '=', 1)->limit(1);
});
// Преобразование результатов запроса в список моделей, подходит для запроса записей, а не статистических данных
$list = A::select(function(QueryBuilder $query){
    $query->where('id', '=', 1)->limit(2);
});

Получение значения одного поля

$count = A::query()->field('count(value)')->select()->getScalar();

Бесплатная техническая поддержка

QQ-группа: 17916227 [! Нажмите, чтобы присоединиться к группе](https://jq.qq.com/?_wv=1027&k=5wXf4Zq), если у вас есть вопросы, их будут отвечать и решать.

Требуемая среда

Авторские права

influxdb-orm распространяется под лицензией MIT и предоставляется бесплатно для использования.

Донат

Открытый исходный код не приносит прибыли, любая сумма — это ваше сердце. Жизнь трудна, будем надеяться на лучшее...

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ORM для InfluxDB — временной базы данных, который положит конец эре отсутствия ORM для InfluxDB. QQ группа: 17916227 Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yurunsoft-influxdb-orm.git
git@api.gitlife.ru:oschina-mirror/yurunsoft-influxdb-orm.git
oschina-mirror
yurunsoft-influxdb-orm
yurunsoft-influxdb-orm
master