{"id":37363505,"url":"https://github.com/g4code/data-repository","last_synced_at":"2026-01-16T04:48:41.067Z","repository":{"id":25455031,"uuid":"103936930","full_name":"g4code/data-repository","owner":"g4code","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-05T07:27:28.000Z","size":106,"stargazers_count":0,"open_issues_count":1,"forks_count":5,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-01-14T14:44:41.767Z","etag":null,"topics":[],"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/g4code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-18T12:35:48.000Z","updated_at":"2025-03-05T07:25:21.000Z","dependencies_parsed_at":"2022-07-26T03:17:14.989Z","dependency_job_id":"47ef4a45-b009-4e3e-8676-5ccad38a28ec","html_url":"https://github.com/g4code/data-repository","commit_stats":{"total_commits":84,"total_committers":7,"mean_commits":12.0,"dds":"0.45238095238095233","last_synced_commit":"66afcca42f4aa77c690bafa7653a34e87882ae19"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/g4code/data-repository","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4code%2Fdata-repository","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4code%2Fdata-repository/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4code%2Fdata-repository/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4code%2Fdata-repository/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/g4code","download_url":"https://codeload.github.com/g4code/data-repository/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/g4code%2Fdata-repository/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: 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":[],"created_at":"2026-01-16T04:48:40.965Z","updated_at":"2026-01-16T04:48:41.052Z","avatar_url":"https://github.com/g4code.png","language":"PHP","readme":"data-repository\n==========\n\n\u003e data-repository - repository library for [php](http://php.net). \n\u003e * database storage with [data-mapper](https://github.com/g4code/data-mapper)\n\u003e * caching with [russian-doll](https://github.com/g4code/russian-doll)\n\u003e * in-memory data store with [identity-map](https://github.com/g4code/identity-map)\n\n## Install\n\nInstall through  [composer](https://getcomposer.org/) package manager.\nFind it on [packagist](https://packagist.org/packages/g4/data-repository).\n\n```sh\ncomposer require g4/data-repository\n```\nDependencies:\n* [g4/data-mapper](https://packagist.org/packages/g4/data-mapper)\n* [g4/russian-doll](https://packagist.org/packages/g4/russian-doll)\n* [g4/identity-map](https://packagist.org/packages/g4/identity-map)\n\n## Usage\n\nCheck data-mapper docs for details - [data-mapper](https://github.com/g4code/data-mapper/blob/master/README.md)\n\nCheck russian-doll docs for details - [russian-doll](https://github.com/g4code/russian-doll/blob/master/README.md)\n\nCheck identity-map docs for details - [identity-map](https://github.com/g4code/identity-map/blob/master/README.md)\n\n```php\n\nuse G4\\DataMapper\\Builder;\nuse G4\\DataMapper\\Common\\Identity;\nuse G4\\DataMapper\\Common\\MappingInterface;\nuse G4\\DataMapper\\Engine\\MySQL\\MySQLAdapter;\nuse G4\\DataMapper\\Engine\\MySQL\\MySQLClientFactory;\nuse G4\\DataRepository\\DataRepositoryFactory;\nuse G4\\IdentityMap\\IdentityMap;\nuse G4\\Mcache\\McacheFactory;\nuse G4\\RussianDoll\\Key;\nuse G4\\RussianDoll\\RussianDoll;\n\n// Create instance\n\n$dataRepository = (new DataRepositoryFactory(\n            Builder::create()-\u003eadapter(new MySQLAdapter(new MySQLClientFactory([]))),\n            new RussianDoll(McacheFactory::createInstance('__driver_name__', [], '__prefix__')),\n            new IdentityMap()\n        ))-\u003ecreate();\n\n\n// Read flow with: data-mapper's mysql engine, russian-doll and identity-map \n\n$identity = new Identity();\n$identity\n    -\u003efield('__field_name__')\n    -\u003eequal('__field_value__');\n\n$response = $dataRepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetIdentity($identity)\n    -\u003esetIdentityMapKey('__table_name__', '__field_name__', '__field_value__')\n    -\u003esetRussianDollKey(new Key('__table_name__', '__field_name__', '__field_value__'))\n    -\u003eselect();\n\n\n// Write flow (insert, update, upsert, delete) with: data-mapper's mysql engine, russian-doll, and identity-map \n\n$identity = new Identity();\n$identity\n    -\u003efield('__field_name__')\n    -\u003eequal('__field_value__');\n\n$this-\u003erepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetMapping(new Mapp())) // must implement mapping\n    -\u003einsert();\n\n$dataRepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetIdentity($identity)\n    -\u003esetIdentityMapKey('__table_name__', '__field_name__', '__field_value__')\n    -\u003esetRussianDollKey(new Key('__table_name__', '__field_name__', '__field_value__'))\n    -\u003esetMapping(new Mapp())) // must implement mapping\n    -\u003eupdate();\n\n$this-\u003erepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetIdentity($identity)\n    -\u003esetIdentityMapKey('__table_name__', '__field_name__', '__field_value__')\n    -\u003esetRussianDollKey(new Key('__table_name__', '__field_name__', '__field_value__'))\n    -\u003esetMapping(new Mapp())) // must implement mapping\n    -\u003eupsert();\n\n$this-\u003erepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetIdentity($identity)\n    -\u003esetIdentityMapKey('__table_name__', '__field_name__', '__field_value__')\n    -\u003esetRussianDollKey(new Key('__table_name__', '__field_name__', '__field_value__'))\n    -\u003edelete();\n   \n $this-\u003erepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetIdentityMapKey('__table_name__')\n    -\u003esetRussianDollKey(new Key('__table_name__'))\n    -\u003equery('SELECT * FROM __table_name__');  \n   \n $this-\u003erepository\n    -\u003esetDatasetName('__table_name__')\n    -\u003esetIdentityMapKey('__table_name__', '__field_name__', '__field_value__')\n    -\u003esetRussianDollKey(new Key('__table_name__', '__field_name__', '__field_value__'))\n    -\u003ecommand('DELETE FROM __table_name__ WHERE __field_name__ = __field_value__');\n \n```\n\n## Development\n\n### Install dependencies\n\n    $ composer install\n\n### Run tests\n\n    $ composer unit-test\n\n## License\n\n(The MIT License)\nsee LICENSE file for details...       \n    \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg4code%2Fdata-repository","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fg4code%2Fdata-repository","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fg4code%2Fdata-repository/lists"}