{"id":19647308,"url":"https://github.com/ibexa/doctrine-schema","last_synced_at":"2025-08-29T13:11:36.881Z","repository":{"id":41854709,"uuid":"353264986","full_name":"ibexa/doctrine-schema","owner":"ibexa","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-11T13:52:04.000Z","size":160,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-04-11T15:10:58.647Z","etag":null,"topics":["ibexa-bundle"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ibexa.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}},"created_at":"2021-03-31T07:25:00.000Z","updated_at":"2024-04-23T12:44:43.335Z","dependencies_parsed_at":"2023-11-23T17:30:55.006Z","dependency_job_id":"5bc46edb-b8c4-453f-95f1-32f18d0b3fed","html_url":"https://github.com/ibexa/doctrine-schema","commit_stats":{"total_commits":80,"total_committers":15,"mean_commits":5.333333333333333,"dds":0.6375,"last_synced_commit":"d2056057867dcec4b4d772462ac3379e64aed63e"},"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibexa%2Fdoctrine-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibexa%2Fdoctrine-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibexa%2Fdoctrine-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibexa%2Fdoctrine-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibexa","download_url":"https://codeload.github.com/ibexa/doctrine-schema/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251338675,"owners_count":21573596,"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":["ibexa-bundle"],"created_at":"2024-11-11T14:43:22.579Z","updated_at":"2025-08-29T13:11:36.874Z","avatar_url":"https://github.com/ibexa.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Doctrine Schema Bundle\n\nThis Symfony Bundle provides basic abstraction layer for cross-DBMS schema import.\n\nIt introduces custom Yaml format for schema definition and provides autowired APIs.\n\n## Schema Builder\n\nProvided by APIs defined on the `\\Ibexa\\Contracts\\DoctrineSchema\\SchemaImporterInterface` interface,\nimports given Yaml source string or Yaml file into `\\Doctrine\\DBAL\\Schema` object.\n\n## Schema Exporter\n\nProvided by APIs defined on the `\\Ibexa\\Contracts\\DoctrineSchema\\SchemaExporterInterface` interface,\nexports given `\\Doctrine\\DBAL\\Schema` object to the custom Yaml format.\n\n## SchemaBuilder\n\nProvided by APIs defined on the `\\Ibexa\\Contracts\\DoctrineSchema\\Builder\\SchemaBuilderInterface`\ninterface, is an extensibility point to be used by Symfony-based projects.\n\nThe `SchemaBuilder` is event-driven. To hook into the process of building schema, a custom `EventSubscriber` is required, e.g.\n\n```php\nuse Ibexa\\Contracts\\DoctrineSchema\\Event\\SchemaBuilderEvent;\nuse Ibexa\\Contracts\\DoctrineSchema\\SchemaBuilderEvents;\nuse Symfony\\Component\\EventDispatcher\\EventSubscriberInterface;\n\nclass BuildSchemaSubscriber implements EventSubscriberInterface\n{\n    private string $schemaFilePath;\n\n    public function __construct(string $schemaFilePath)\n    {\n        $this-\u003eschemaFilePath = $schemaFilePath;\n    }\n\n    /**\n     * @return string[]\n     */\n    public static function getSubscribedEvents(): array\n    {\n        return [\n            SchemaBuilderEvents::BUILD_SCHEMA =\u003e ['onBuildSchema', 200],\n        ];\n    }\n\n    public function onBuildSchema(SchemaBuilderEvent $event): void\n    {\n        $event\n            -\u003egetSchemaBuilder()\n            -\u003eimportSchemaFromFile($this-\u003eschemaFilePath);\n    }\n}\n```\n\nSchema provided in this way can be imported into Schema object by e.g.:\n\n```php\n    public function __construct(SchemaBuilder $schemaBuilder)\n    {\n        $this-\u003eschemaBuilder = $schemaBuilder;\n    }\n\n    public function importSchema(): void\n    {\n        $schema = $this-\u003eschemaBuilder-\u003ebuildSchema();\n        // ...\n    }\n```\n\n## COPYRIGHT\nCopyright (C) 1999-2025 Ibexa AS (formerly eZ Systems AS). All rights reserved.\n\n## LICENSE\nThis source code is available separately under the following licenses:\n\nA - Ibexa Business Use License Agreement (Ibexa BUL),\nversion 2.4 or later versions (as license terms may be updated from time to time)\nIbexa BUL is granted by having a valid Ibexa DXP (formerly eZ Platform Enterprise) subscription,\nas described at: https://www.ibexa.co/product\nFor the full Ibexa BUL license text, please see:\nhttps://www.ibexa.co/software-information/licenses-and-agreements (latest version applies)\n\nAND\n\nB - GNU General Public License, version 2\nGrants an copyleft open source license with ABSOLUTELY NO WARRANTY. For the full GPL license text, please see:\nhttps://www.gnu.org/licenses/old-licenses/gpl-2.0.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibexa%2Fdoctrine-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibexa%2Fdoctrine-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibexa%2Fdoctrine-schema/lists"}