此包的最新版本(1.0.0)没有可用的许可证信息。

我的 Composer 包

1.0.0 2023-04-08 21:12 UTC

This package is auto-updated.

Last update: 2024-09-14 14:50:32 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);

如果你喜欢我所做的工作,如果它对你有帮助,或者它作为更神奇事物的一个起点,请用星标告诉我 💚