定制 smoren/yii2-array-storage 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

smoren/yii2-array-storage

Composer 安装命令:

composer require smoren/yii2-array-storage

包简介

Class for storing and managing data in an array

README 文档

README

Класс для хранения и управления данными в массиве. Может быть применен на практике, например, в качестве хэлпера для работы с полем, хранящим json в модели ActiveRecord.

Установка в проект на Yii2

composer require smoren/yii2-array-storage

Примеры использования

<?php

use Smoren\Yii2\ArrayStorage\Storage;

// исходный массив
$data = [
    'a' => [
        'b1' => [1, 2, 3],
        'b2' => 5,
    ]
];

// инициализация хранилища
$storage = new Storage($data);

// получение всего массива данных хранилища
$value = $storage->get();
print_r($value);
/*
Array
(
    [a] => Array
        (
            [b1] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 3
                )
            [b2] => 5
        )
)
*/

// получение элемента по ключу
$value = $storage->get('a');
print_r($value);
/*
Array
(
    [b1] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
    [b2] => 5
)
*/

// получение элемента по ключу с уровнями вложенномти
$value = $storage->get('a.b1.0');
var_dump($value);
/* int(1) */

// попытка получения значения по отсутствующему в хранилище ключу со значением по умолчанию
$value = $storage->get('a.b3', 'Значение по умолчанию');
var_dump($value);
/* string(40) "Значение по умолчанию" */

// попытка получения значения по отсутствующему в хранилище ключу без значения по умолчанию
try {
    $storage->get('a.b3');
} catch(\yii\base\Exception $e) {
    var_dump($e->getMessage());
    /* string(39) "key 'a.b3' is not exist in user storage" */
}

// проверки существования ключа в массиве
var_dump($storage->has('a.b2'));
/* bool(true) */
var_dump($storage->has('a.b3'));
/* bool(false) */
try {
    $storage->has('a.b3', true);
} catch(\yii\base\Exception $e) {
    var_dump($e->getMessage());
    /* string(39) "key 'a.b3' is not exist in user storage" */
}

// добавление элемента в хранилище
$storage->set('a.new', 'Значение нового элемента');
print_r($storage->get());
/*
Array
(
    [a] => Array
        (
            [b1] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 3
                )
            [b2] => 5
            [new] => Значение нового элемента
        )
)
*/

// добавление элемента в хранилище с запретом перезаписи
$storage->set('a.new_another', 'Еще одно значение нового элемента', false);
print_r($storage->get());
/*
Array
(
    [a] => Array
        (
            [b1] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 3
                )
            [b2] => 5
            [new] => Значение нового элемента
            [new_another] => Еще одно значение нового элемента
        )
)
*/

// попытка перезаписи элемента с запретом перезаписи
try {
    $storage->set('a.b2', 'Это значение не запишется', false);
} catch(\yii\base\Exception $e) {
    var_dump($e->getMessage());
    /* string(43) "key 'a.b2' is already exist in user storage" */
}
print_r($storage->get());
/*
Array
(
    [a] => Array
        (
            [b1] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 3
                )
            [b2] => 5
            [new] => Значение нового элемента
            [new_another] => Еще одно значение нового элемента
        )
)
*/

// удаление элемента из хранилища по ключу, получение значения удаленного элемента
$removedValue = $storage->remove('a.b1');
print_r($removedValue);
/*
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
*/
print_r($storage->get());
/*
Array
(
    [a] => Array
        (
            [b2] => 5
            [new] => Значение нового элемента
            [new_another] => Еще одно значение нового элемента
        )
)
*/

// попытка удаления несуществующего элемента
try {
    $storage->remove('a.с');
} catch(\yii\base\Exception $e) {
    var_dump($e->getMessage());
    /* string(39) "key 'a.с' is not exist in user storage" */
}

统计信息

  • 总下载量: 370
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-03-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固