egretos / orio
Orio 是一个基于 PHPOrient 的优秀的 OrientDB 查询构建器。
dev-master
2018-12-17 15:32 UTC
Requires
- php: >=7.0
- ostico/phporient: >=1.2.5
- psr/log: ~1.0
This package is auto-updated.
Last update: 2024-09-10 17:58:09 UTC
README
Orio 是一个简单的基于 PHPOrient 的 OrientDB 查询构建器。
已测试于 Orientdb 版本 2.1.3
要求
- PHP 版本 >= 5.4 (启用 Socket 扩展)
- ostico 的 phporient
安装
使用 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