{"id":21891190,"url":"https://github.com/kamalkhan/repository","last_synced_at":"2026-05-19T02:31:14.756Z","repository":{"id":62493906,"uuid":"125389123","full_name":"kamalkhan/repository","owner":"kamalkhan","description":"Fluent storage repository with dot notated key support","archived":false,"fork":false,"pushed_at":"2021-01-14T17:12:29.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T22:34:52.966Z","etag":null,"topics":["configuration","dot-notation","fluent","repository","storage"],"latest_commit_sha":null,"homepage":null,"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/kamalkhan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-15T15:38:03.000Z","updated_at":"2021-01-14T17:12:32.000Z","dependencies_parsed_at":"2022-11-02T09:45:22.714Z","dependency_job_id":null,"html_url":"https://github.com/kamalkhan/repository","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamalkhan%2Frepository","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamalkhan%2Frepository/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamalkhan%2Frepository/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamalkhan%2Frepository/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kamalkhan","download_url":"https://codeload.github.com/kamalkhan/repository/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244898458,"owners_count":20528341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["configuration","dot-notation","fluent","repository","storage"],"created_at":"2024-11-28T12:21:40.345Z","updated_at":"2026-05-19T02:31:09.728Z","avatar_url":"https://github.com/kamalkhan.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Repository\n\n[![Travis Build Status][icon-status]][link-status]\n[![Codacy Coverage][icon-coverage]][link-coverage]\n[![Codacy Grade][icon-grade]][link-grade]\n[![Packagist Downloads][icon-downloads]][link-downloads]\n[![License][icon-license]](LICENSE.md)\n\nFluent storage repository with dot notated key support.\n\n## Install\n\nYou may install this package using [composer][link-composer].\n\n```shell\n$ composer require bhittani/repository\n```\n\n## Usage\n\nThis package provides a fluent and intuitive storage repository.\n\n```php\n\u003c?php\n\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Bhittani\\Repository\\Repository;\n\n$storage = new Repository;\n\n// See below examples for usage...\n```\n\n### Store and retrieve values\n\n```php\n// Store and retrieve a value.\n$storage-\u003eset('foo', 'bar');\necho $storage-\u003eget('foo'); // 'bar'\n\n// Store an array and retrieve a value using dot notated key access.\n$storage-\u003eset('app', ['name' =\u003e 'Acme', 'version' =\u003e '0.1.0']);\necho $storage-\u003eget('app.version'); // '0.1.0'\n\n// Store a value using dot notated keys.\n$storage-\u003eset('db.sqlite.path', ':memory:');\n$storage-\u003eset('db.sqlite.prefix', 'acme_');\nvar_dump($storage-\u003eget('db.sqlite')); // ['path' =\u003e ':memory:', 'prefix' =\u003e 'acme_']\n```\n\n### Preset an undefined key\n\n```php\n$storage-\u003epreset('a', 'b');\necho $storage-\u003eget('a'); // 'b'\n\n$storage-\u003eset('x', 'y');\n$storage-\u003epreset('x', 'z');\necho $storage-\u003eget('x'); // 'y'\n```\n\n### Append a value\n\n```php\n$storage-\u003eset('append', ['foo']);\n$storage-\u003eappend('append', 'bar');\nvar_dump($storage-\u003eget('append')); // ['foo', 'bar']\n```\n\n### Prepend a value\n\n```php\n$storage-\u003eset('prepend', ['foo']);\n$storage-\u003eappend('prepend', 'bar');\nvar_dump($storage-\u003eget('prepend')); // ['bar', 'foo]\n```\n\n### Increment a value\n\n```php\necho $storage-\u003eget('incr'); // null\n\n$storage-\u003eincrement('incr');\necho $storage-\u003eget('incr'); // 1\n\n$storage-\u003eincrement('incr', 5);\necho $storage-\u003eget('incr'); // 6\n```\n\n### Decrement a value\n\n```php\necho $storage-\u003eget('decr'); // null\n\n$storage-\u003edecerement('decr');\necho $storage-\u003eget('decr'); // -1\n\n$storage-\u003edecerement('decr', 5);\necho $storage-\u003eget('decr'); // -6\n```\n\n### Fallback to a default value\n\n```php\necho $storage-\u003eget('bar'); // null\n\necho $storage-\u003eget('bar', 'fallback'); // 'fallback'\n```\n\n### Check whether a key is set\n\n```php\nvar_dump($storage-\u003ehas('bar')); // (bool) false\n```\n\n### Get all items\n\n```php\n$storage-\u003eadd('foo', 'bar');\n$storage-\u003eadd('beep.boop', 'baz');\n\nvar_dump($storage-\u003eall()); // ['foo' =\u003e 'bar', 'beep' =\u003e ['boop' =\u003e 'baz']]\n```\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed.\n\n## Testing\n\n```shell\n$ git clone https://github.com/kamalkhan/repository\n$ cd repository\n$ composer install\n$ composer test\n```\n\n## Contributing\n\nPlease see [CONTRIBUTING](.github/CONTRIBUTING.md) and [CONDUCT](.github/CONDUCT.md) for details.\n\n## Security\n\nIf you discover any security related issues, please email `shout@bhittani.com` instead of using the issue tracker.\n\n## Credits\n\n- [Kamal Khan](http://bhittani.com)\n- [All Contributors](https://github.com/kamalkhan/repository/contributors)\n\n## License\n\nThe MIT License (MIT). Please see the [License File](LICENSE.md) for more information.\n\n\u003c!--Status--\u003e\n[icon-status]: https://img.shields.io/travis/kamalkhan/repository.svg?style=flat-square\n[link-status]: https://travis-ci.org/kamalkhan/repository\n\u003c!--Coverage--\u003e\n[icon-coverage]: https://api.codacy.com/project/badge/Coverage/ae5ab63e9eb54cd996cbd0a1efadfe58\n[link-coverage]: https://www.codacy.com/app/kamalkhan/repository\n\u003c!--Grade--\u003e\n[icon-grade]: https://api.codacy.com/project/badge/Grade/ae5ab63e9eb54cd996cbd0a1efadfe58\n[link-grade]: https://www.codacy.com/app/kamalkhan/repository\n\u003c!--Downloads--\u003e\n[icon-downloads]: https://img.shields.io/packagist/dt/bhittani/repository.svg?style=flat-square\n[link-downloads]: https://packagist.org/packages/bhittani/repository\n\u003c!--License--\u003e\n[icon-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square\n\u003c!--composer--\u003e\n[link-composer]: https://getcomposer.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamalkhan%2Frepository","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkamalkhan%2Frepository","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamalkhan%2Frepository/lists"}