egretos/orio

Orio 是一个基于 PHPOrient 的优秀的 OrientDB 查询构建器。

dev-master 2018-12-17 15:32 UTC

This package is auto-updated.

Last update: 2024-09-10 17:58:09 UTC


README

Orio 是一个简单的基于 PHPOrient 的 OrientDB 查询构建器。

已测试于 Orientdb 版本 2.1.3

要求

安装

使用 git

git clone https://github.com/egretos/orio.git

使用 composer

安装 composer

php -r "readfile('https://composer.php.ac.cn/installer');" | php
php composer.phar --no-dev install

安装 Orio

php composer.phar require "egretos/orio:dev-master" --update-no-dev

使用方法

require "vendor/autoload.php";
use Orio\DB;

连接到服务器

$DBconfig = [
    'hostname' => '127.0.0.1',
    'port' => 2424,
    'username' => 'username',
    'password' => 'password',
    'name' => 'DB name',
];
DB::init($DBConfig);

简单查询

返回 phporient 记录数组

$result = DB::command("select from #12:0");

按类选择

返回 Orio 模型数组

$result = DB::select('User')->get();

通过自定义字段获取数据

默认情况下,get() 返回所有字段

$result = DB::select('User')
    ->get('name'); //one field
$result = DB::select('User')
    ->get(['name', 'email']); //many fields

通过条件获取数据

返回 Orio 模型数组

$result = DB::select('User')
    ->where('name', 'Joe')
    ->get();
    
$result = DB::select('User')
    ->where('age', '>', '18')
    ->get();    

通过 rid 获取一个记录

返回 Orio 模型。用法

use PhpOrient\Protocols\Binary\Data\ID

// 3 variants of definition
$rid = new ID( '#12:0' );
$rid = new ID( 12, 0 );
$rid = new ID( [ 'cluster' => 12, 'position' => 0 ] );

// getting model
$result = DB::byRid($rid);

你可以写得更简单

$result = DB::byRid('#12:0');   

或使用 select()->one()

$result = DB::select('#12:0')->one();

获取关联记录

结果将是 Dmitry 的朋友。

$result = DB::select('User')
    ->where('name', 'Dmitry')
    ->linked('Friend')
    ->get();

结果将是 "Developers" 群组中的所有成员。

$result = DB::select('Group')
    ->where('name', 'Developers')
    ->linked('Member')
    ->get();

结果将是 Dmitry 的朋友,他是 "Developers" 群组的成员。

$result = DB::select('Group')
    ->where('name', 'Developers')
    ->linked('Member')
    ->where('name', 'Dmitry')
    ->linked('Friend')
    ->get();

结果将是所有喜欢 Dmitry 的朋友的用户,他们都是 "Developers" 群组的成员。

$result = DB::select('Group')
    ->where('name', 'Developers')
    ->linked('Member')
    ->where('name', 'Dmitry')
    ->linked('Friend')
    ->linked('Likes', 'in')
    ->get();

许可

MIT