{"id":17226874,"url":"https://github.com/dantleech/jackalope2","last_synced_at":"2025-03-25T17:48:30.620Z","repository":{"id":66290717,"uuid":"55245923","full_name":"dantleech/jackalope2","owner":"dantleech","description":"Modular PHPCR Implementation","archived":false,"fork":false,"pushed_at":"2016-04-13T08:21:24.000Z","size":35,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T15:44:24.554Z","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/dantleech.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-01T16:20:19.000Z","updated_at":"2016-05-07T19:26:48.000Z","dependencies_parsed_at":"2023-02-22T13:00:37.783Z","dependency_job_id":null,"html_url":"https://github.com/dantleech/jackalope2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantleech%2Fjackalope2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantleech%2Fjackalope2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantleech%2Fjackalope2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantleech%2Fjackalope2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dantleech","download_url":"https://codeload.github.com/dantleech/jackalope2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245515167,"owners_count":20628116,"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":[],"created_at":"2024-10-15T04:17:27.451Z","updated_at":"2025-03-25T17:48:30.596Z","avatar_url":"https://github.com/dantleech.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Jackalope 2\n===========\n\n[![Build Status](https://travis-ci.org/jackalope2/jackalope2.svg?branch=master)](https://travis-ci.org/jackalope2/jackalope2)\n[![StyleCI](https://styleci.io/repos/\u003crepo-id\u003e/shield)](https://styleci.io/repos/\u003crepo-id\u003e)\n\nA POC/WIP for Jackalope 2\n\nGeneral concepts:\n\n- Modular: Storage, Search, Versioning, etc all idependent and combinable.\n- PHPCR layer built upon decoupled components.\n- Lazy loading of properties (depending on storage).\n- Mandatory UUIDs.\n- PHP 7 only.\n- Clean.\n\n## Modular\n\nThe current Jackalope implies to the implemention (Doctrine DBAL, Jackrabbit)\nthat it must handle everything - not only storage, but also versioning and\nsearch. This is mitigated to some extent by providing helper functions in the\nmain library, however it is ultimately the implementations responsibility.\n\nIt is also very hard work to create new implementations due to the organically\nevolved API which grew out of a PHPCR Jackrabbit client.\n\nThis second iteration will fully decouple storage, versioning, search (and\nwhatever else). This will mean creating, for example, a file system backend\nwill be realtively simple, and it can then be combined with, for example, an\nZend Search module and a DBAL versioning module.\n\n## Storage\n\nThe Storage component handles storing and retrieving data from any number of\nbackends (e.g. MongoDB, PHP array, Elastic Search).\n\nIt data is persisted and retrieved with ``Node`` objects (so named beacuse\nthey translate to ``Node`` instances at the PHPCR level but are essentially\nDTOs).\n\nThe ``NodeManager`` handles tracking of the ``Nodes`` and transactions, it\nis both a unit-of-work and an API, however key responsibilities, such as\ntracking nodes and paths,  are delegated and the class remains\nalgorithmically simple.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdantleech%2Fjackalope2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdantleech%2Fjackalope2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdantleech%2Fjackalope2/lists"}