{"id":14966737,"url":"https://github.com/smoren/yii2-array-storage","last_synced_at":"2026-02-05T04:02:49.004Z","repository":{"id":57053993,"uuid":"245199609","full_name":"Smoren/yii2-array-storage","owner":"Smoren","description":"Wrapper to extend php array with some useful things","archived":false,"fork":false,"pushed_at":"2020-09-15T20:07:40.000Z","size":11,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-05T19:34:07.078Z","etag":null,"topics":["array-manipulations","yii2","yii2-extension"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Smoren.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-05T15:29:43.000Z","updated_at":"2025-03-04T05:53:52.000Z","dependencies_parsed_at":"2022-08-24T04:11:50.861Z","dependency_job_id":null,"html_url":"https://github.com/Smoren/yii2-array-storage","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Smoren/yii2-array-storage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fyii2-array-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fyii2-array-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fyii2-array-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fyii2-array-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Smoren","download_url":"https://codeload.github.com/Smoren/yii2-array-storage/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fyii2-array-storage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29110579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T03:44:17.043Z","status":"ssl_error","status_checked_at":"2026-02-05T03:44:12.077Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["array-manipulations","yii2","yii2-extension"],"created_at":"2024-09-24T13:36:52.444Z","updated_at":"2026-02-05T04:02:48.985Z","avatar_url":"https://github.com/Smoren.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yii2-array-storage\nКласс для хранения и управления данными в массиве.\nМожет быть применен на практике, например, в качестве хэлпера для работы \nс полем, хранящим _json_ в модели _ActiveRecord_.\n\n### Установка в проект на Yii2\n```\ncomposer require smoren/yii2-array-storage\n```\n\n### Примеры использования\n\n```php\n\u003c?php\n\nuse Smoren\\Yii2\\ArrayStorage\\Storage;\n\n// исходный массив\n$data = [\n    'a' =\u003e [\n        'b1' =\u003e [1, 2, 3],\n        'b2' =\u003e 5,\n    ]\n];\n\n// инициализация хранилища\n$storage = new Storage($data);\n\n// получение всего массива данных хранилища\n$value = $storage-\u003eget();\nprint_r($value);\n/*\nArray\n(\n    [a] =\u003e Array\n        (\n            [b1] =\u003e Array\n                (\n                    [0] =\u003e 1\n                    [1] =\u003e 2\n                    [2] =\u003e 3\n                )\n            [b2] =\u003e 5\n        )\n)\n*/\n\n// получение элемента по ключу\n$value = $storage-\u003eget('a');\nprint_r($value);\n/*\nArray\n(\n    [b1] =\u003e Array\n        (\n            [0] =\u003e 1\n            [1] =\u003e 2\n            [2] =\u003e 3\n        )\n    [b2] =\u003e 5\n)\n*/\n\n// получение элемента по ключу с уровнями вложенномти\n$value = $storage-\u003eget('a.b1.0');\nvar_dump($value);\n/* int(1) */\n\n// попытка получения значения по отсутствующему в хранилище ключу со значением по умолчанию\n$value = $storage-\u003eget('a.b3', 'Значение по умолчанию');\nvar_dump($value);\n/* string(40) \"Значение по умолчанию\" */\n\n// попытка получения значения по отсутствующему в хранилище ключу без значения по умолчанию\ntry {\n    $storage-\u003eget('a.b3');\n} catch(\\yii\\base\\Exception $e) {\n    var_dump($e-\u003egetMessage());\n    /* string(39) \"key 'a.b3' is not exist in user storage\" */\n}\n\n// проверки существования ключа в массиве\nvar_dump($storage-\u003ehas('a.b2'));\n/* bool(true) */\nvar_dump($storage-\u003ehas('a.b3'));\n/* bool(false) */\ntry {\n    $storage-\u003ehas('a.b3', true);\n} catch(\\yii\\base\\Exception $e) {\n    var_dump($e-\u003egetMessage());\n    /* string(39) \"key 'a.b3' is not exist in user storage\" */\n}\n\n// добавление элемента в хранилище\n$storage-\u003eset('a.new', 'Значение нового элемента');\nprint_r($storage-\u003eget());\n/*\nArray\n(\n    [a] =\u003e Array\n        (\n            [b1] =\u003e Array\n                (\n                    [0] =\u003e 1\n                    [1] =\u003e 2\n                    [2] =\u003e 3\n                )\n            [b2] =\u003e 5\n            [new] =\u003e Значение нового элемента\n        )\n)\n*/\n\n// добавление элемента в хранилище с запретом перезаписи\n$storage-\u003eset('a.new_another', 'Еще одно значение нового элемента', false);\nprint_r($storage-\u003eget());\n/*\nArray\n(\n    [a] =\u003e Array\n        (\n            [b1] =\u003e Array\n                (\n                    [0] =\u003e 1\n                    [1] =\u003e 2\n                    [2] =\u003e 3\n                )\n            [b2] =\u003e 5\n            [new] =\u003e Значение нового элемента\n            [new_another] =\u003e Еще одно значение нового элемента\n        )\n)\n*/\n\n// попытка перезаписи элемента с запретом перезаписи\ntry {\n    $storage-\u003eset('a.b2', 'Это значение не запишется', false);\n} catch(\\yii\\base\\Exception $e) {\n    var_dump($e-\u003egetMessage());\n    /* string(43) \"key 'a.b2' is already exist in user storage\" */\n}\nprint_r($storage-\u003eget());\n/*\nArray\n(\n    [a] =\u003e Array\n        (\n            [b1] =\u003e Array\n                (\n                    [0] =\u003e 1\n                    [1] =\u003e 2\n                    [2] =\u003e 3\n                )\n            [b2] =\u003e 5\n            [new] =\u003e Значение нового элемента\n            [new_another] =\u003e Еще одно значение нового элемента\n        )\n)\n*/\n\n// удаление элемента из хранилища по ключу, получение значения удаленного элемента\n$removedValue = $storage-\u003eremove('a.b1');\nprint_r($removedValue);\n/*\nArray\n(\n    [0] =\u003e 1\n    [1] =\u003e 2\n    [2] =\u003e 3\n)\n*/\nprint_r($storage-\u003eget());\n/*\nArray\n(\n    [a] =\u003e Array\n        (\n            [b2] =\u003e 5\n            [new] =\u003e Значение нового элемента\n            [new_another] =\u003e Еще одно значение нового элемента\n        )\n)\n*/\n\n// попытка удаления несуществующего элемента\ntry {\n    $storage-\u003eremove('a.с');\n} catch(\\yii\\base\\Exception $e) {\n    var_dump($e-\u003egetMessage());\n    /* string(39) \"key 'a.с' is not exist in user storage\" */\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmoren%2Fyii2-array-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmoren%2Fyii2-array-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmoren%2Fyii2-array-storage/lists"}