jaxonrailey / vane
此包的最新版本(1.0.0)没有可用的许可证信息。
我的 Composer 包
1.0.0
2023-04-08 21:12 UTC
README
Vane 是一个 PHP 包,它允许您以节点的方式查询文档,因此具有典型的 NoSQL 数据库结构,但使用熟悉的直观语法,通过受 SQL 语言启发的函数。
安装
要从终端安装此包,请运行以下命令
composer require jaxonrailey/vane
使用方法
安装完成后,包含命名空间
use JaxonRailey\Vane;
初始化 Vane 实例
$vane = new Vane();
示例
考虑以下数组,我们将在其上执行一些查询
$planets = [ [ 'name' => 'mercury', 'temperature' => 440, 'distance' => 57910000, 'satellites' => 0, 'atmosphere' => [], 'discoverer' => [ 'firstname' => 'Giovanni', 'lastname' => 'Schiaparelli', 'nationality' => 'Italian' ] ], [ 'name' => 'venus', 'temperature' => 737, 'distance' => 108200000, 'satellites' => 0, 'atmosphere' => ['nitrogen', 'water', 'argon'], 'discoverer' => [ 'firstname' => 'Giovanni', 'lastname' => 'Cassini', 'nationality' => 'Italian' ] ], [ 'name' => 'earth', 'temperature' => 15, 'distance' => 149600000, 'satellites' => 1, 'atmosphere' => ['nitrogen', 'oxygen', 'water', 'neon'] ], [ 'name' => 'mars', 'temperature' => -63, 'distance' => 227940000, 'satellites' => 2, 'atmosphere' => ['nitrogen', 'argon', 'oxygen', 'water'], 'discoverer' => [ 'firstname' => 'Edward', 'lastname' => 'Barnard', 'nationality' => 'American' ] ], [ 'name' => 'jupiter', 'temperature' => -108, 'distance' => 778330000, 'satellites' => 79, 'atmosphere' => ['hydrogen', 'helium', 'methane'], 'discoverer' => [ 'firstname' => 'Galileo', 'lastname' => 'Galilei', 'nationality' => 'Italian' ] ], [ 'name' => 'saturn', 'temperature' => -139, 'distance' => 1429400000, 'satellites' => 82, 'atmosphere' => ['hydrogen', 'helium', 'methane'], 'discoverer' => [ 'firstname' => 'Galileo', 'lastname' => 'Galilei', 'nationality' => 'Italian' ] ], [ 'name' => 'uranus', 'temperature' => -197, 'distance' => 2870990000, 'satellites' => 27, 'atmosphere' => ['hydrogen', 'helium', 'methane', 'water'], 'discoverer' => [ 'firstname' => 'William', 'lastname' => 'Herschel', 'nationality' => 'German-British' ] ], [ 'name' => 'neptune', 'temperature' => -201, 'distance' => 4504300000, 'satellites' => 14, 'atmosphere' => ['hydrogen', 'helium', 'methane', 'water'], 'discoverer' => [ 'firstname' => 'Urbain', 'lastname' => 'Le Verrier', 'nationality' => 'French' ] ] ];
基本使用
选择
$vane->select('*'); $vane->from('planet'); $rows = $vane->rows();
插入
$vane->from('planet'); $vane->save($planets);
更新
$vane->from('planet'); $vane->where('temperature', '>', 0); $vane->save(['star' => 'Sun']);
删除
$vane->from('planet'); $vane->where('temperature', '>', 0); $vane->delete();
截断
$vane->from('planet'); $vane->truncate();
高级使用
根据给定的值是否包含在数组类型的属性中,选择元素
$vane->select('*'); $vane->from('planet'); $vane->contains('atmosphere', 'methane'); $rows = $vane->rows();
根据给定的值是否不包含在数组类型的属性中,选择元素
$vane->select('*'); $vane->from('planet'); $vane->contains('atmosphere', 'methane', false); $rows = $vane->rows();
根据给定的属性是否存在,选择元素
$vane->select('*'); $vane->from('planet'); $vane->exists('discoverer'); $rows = $vane->rows();
根据给定的属性不存在,选择元素
$vane->select('*'); $vane->from('planet'); $vane->exists('discoverer', false); $rows = $vane->rows();
根据数组属性中元素的数量是否超过 x,选择元素
$vane->select('*'); $vane->from('planet'); $vane->counter('atmosphere', '>', 3); $rows = $vane->rows();
根据其标识符选择单个项目
$vane->select('*'); $vane->from('planet'); $row = $vane->id('<id-of-element>');
选择语句也可以接受单个属性
$vane->select('name', 'distance'); $vane->from('planet'); $rows = $vane->rows();
可以使用点符号访问嵌套属性
$vane->select('discoverer.firstname'); $vane->from('planet'); $vane->where('discoverer.nationality', '=', 'Italian'); $rows = $vane->rows();
糖语法
在计数器方法和 where 方法中,您可以传递最少的两个参数,即属性名和要比较的值,从而抑制条件符号。在这种情况下,条件运算符是等号(=)
$vane->where('name', 'mercury');
等同于
$vane->where('name', '=', 'mercury');
同样适用于计数器方法
$vane->counter('atmosphere', 3);
等同于
$vane->counter('atmosphere', '=', 3);
⭐ 如果你喜欢我所做的工作,如果它对你有帮助,或者它作为更神奇事物的一个起点,请用星标告诉我 💚