{"id":24016308,"url":"https://github.com/decodelabs/genesis","last_synced_at":"2025-10-18T07:55:05.284Z","repository":{"id":60417504,"uuid":"541695816","full_name":"decodelabs/genesis","owner":"decodelabs","description":"Universal bootstrapping framework for PHP applications","archived":false,"fork":false,"pushed_at":"2025-04-14T08:47:23.000Z","size":102,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-04-15T14:06:43.711Z","etag":null,"topics":["bootstrap","kernel","php"],"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/decodelabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2022-09-26T17:05:04.000Z","updated_at":"2025-04-14T08:47:27.000Z","dependencies_parsed_at":"2023-01-31T19:25:14.961Z","dependency_job_id":"673b6107-3d4f-491f-a5bb-f7feb36d03d2","html_url":"https://github.com/decodelabs/genesis","commit_stats":{"total_commits":44,"total_committers":1,"mean_commits":44.0,"dds":0.0,"last_synced_commit":"528d210b6402b0fc0b2c952d771bab67c49d95f9"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decodelabs%2Fgenesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decodelabs%2Fgenesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decodelabs%2Fgenesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decodelabs%2Fgenesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/decodelabs","download_url":"https://codeload.github.com/decodelabs/genesis/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249085436,"owners_count":21210267,"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":["bootstrap","kernel","php"],"created_at":"2025-01-08T08:48:54.840Z","updated_at":"2025-10-18T07:55:05.275Z","avatar_url":"https://github.com/decodelabs.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Genesis\n\n[![PHP from Packagist](https://img.shields.io/packagist/php-v/decodelabs/genesis?style=flat)](https://packagist.org/packages/decodelabs/genesis)\n[![Latest Version](https://img.shields.io/packagist/v/decodelabs/genesis.svg?style=flat)](https://packagist.org/packages/decodelabs/genesis)\n[![Total Downloads](https://img.shields.io/packagist/dt/decodelabs/genesis.svg?style=flat)](https://packagist.org/packages/decodelabs/genesis)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/decodelabs/genesis/integrate.yml?branch=develop)](https://github.com/decodelabs/genesis/actions/workflows/integrate.yml)\n[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-44CC11.svg?longCache=true\u0026style=flat)](https://github.com/phpstan/phpstan)\n[![License](https://img.shields.io/packagist/l/decodelabs/genesis?style=flat)](https://packagist.org/packages/decodelabs/genesis)\n\n### Universal bootstrapping framework for PHP applications\n\nGenesis provides everything you need to bootstrap your application at runtime. Take the guesswork out of how best to structure the lowest level code in your framework and app.\n\n---\n\n\n## Installation\n\nThis package requires PHP 8.4 or higher.\n\nInstall via Composer:\n\n```bash\ncomposer require decodelabs/genesis\n```\n\n## Usage\n\n### Hub\n\nGenesis requires consumers of the library to implement a number of interfaces to represent important parts of the bootstrap process. With these classes in place, it is then able to provide a unified, dependable bootstrap process for all environments.\n\nMost important is the `Hub` interface:\n\n```php\nnamespace DecodeLabs\\Genesis;\n\nuse DecodeLabs\\Genesis\\Environment\\Config as EnvConfig;\nuse DecodeLabs\\Genesis\\Build\\Manifest as BuildManifest;\nuse DecodeLabs\\Kingdom;\n\ninterface Hub\n{\n    public ?BuildManifest $buildManifest { get; }\n\n    public function initializeLoaders(): void;\n    public function loadBuild(): Build;\n    public function loadEnvironmentConfig(): EnvConfig;\n    public function initializePlatform(): void;\n    public function loadKingdom(): Kingdom;\n}\n```\n\n\n## Bootstrapping\n\n`Genesis` now runs as a composer plugin, automatically generating an entry point for your application when composer updates.\n\nYou just need to add make sure you have set your composer `type` ('project' for a standalone app, 'library' for a library) and your `Hub` class to the `genesis.hub` extra key in your `composer.json` file:\n\n```json\n{\n    \"extra\": {\n        \"genesis\": {\n            \"hub\": \"My\\\\Genesis\\\\Hub\"\n        }\n    }\n}\n```\n\nYou can then point your HTTP server to rewite to `vendor/genesis.php` as your entry point. Genesis takes care of the rest.\n\n\n## Compiled builds\n\nGenesis supports an advanced build compilation process which can be used for isolating active runtime code from the source of your application. This is especially useful for legacy frameworks that can't easily be deployed using a third party automated deployment system.\n\nCompiled builds are a complex topic due to the necessity of locating the correct build folder before loading _any_ other code and needing to seamlessly deploy updates without unwittingly mixing different versions of libraries during execution.\n\nFull details of [how to work with compiled builds can be found here](docs/builds.md).\n\n## Licensing\n\nGenesis is licensed under the MIT License. See [LICENSE](./LICENSE) for the full license text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecodelabs%2Fgenesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdecodelabs%2Fgenesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecodelabs%2Fgenesis/lists"}