refactor: Remove billing module and restore API Platform as core dependency

Änderungen:
- Billing-Modul entfernt: composer remove mycrm/billing-module
- API Platform als Core-Dependency wiederhergestellt
- ApiPlatformBundle in config/bundles.php registriert
- BillingModuleBundle aus config/bundles.php entfernt

Problem behoben:
API Platform wurde versehentlich mit dem Billing-Modul entfernt,
obwohl es eine Core-Dependency für die Hauptanwendung ist.
Alle Entities (Contact, User, Project, etc.) benötigen API Platform.

Lösung:
- composer require api-platform/symfony api-platform/doctrine-orm
- Bundle-Registrierung in config/bundles.php korrigiert
- Cache erfolgreich geleert, Frontend erfolgreich gebaut

Hinweis:
Zukünftige Module sollten keine Core-Dependencies (Symfony, Doctrine,
API Platform) als eigene Abhängigkeiten deklarieren, da diese bereits
im Core vorhanden sind.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
olli 2025-12-14 18:15:41 +01:00
parent 6246f29135
commit 4e82b8396f
4 changed files with 2 additions and 257 deletions

View File

@ -15,7 +15,6 @@
"doctrine/orm": "^3.5", "doctrine/orm": "^3.5",
"knpuniversity/oauth2-client-bundle": "*", "knpuniversity/oauth2-client-bundle": "*",
"league/oauth2-client": "*", "league/oauth2-client": "*",
"mycrm/billing-module": "^1.0",
"nelmio/cors-bundle": "^2.6", "nelmio/cors-bundle": "^2.6",
"phpdocumentor/reflection-docblock": "^5.6", "phpdocumentor/reflection-docblock": "^5.6",
"phpstan/phpdoc-parser": "^2.3", "phpstan/phpdoc-parser": "^2.3",

238
composer.lock generated
View File

@ -4,213 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "f89ce01cc8bcb7810af77472d2437dd0", "content-hash": "4de60f0e1db6309818f3bfa067fd4ffd",
"packages": [ "packages": [
{
"name": "api-platform/core",
"version": "v4.0.1",
"source": {
"type": "git",
"url": "https://github.com/api-platform/core.git",
"reference": "80fc2d2303f35bccdc6789dc72a205781c3dc3d0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/api-platform/core/zipball/80fc2d2303f35bccdc6789dc72a205781c3dc3d0",
"reference": "80fc2d2303f35bccdc6789dc72a205781c3dc3d0",
"shasum": ""
},
"require": {
"doctrine/inflector": "^1.0 || ^2.0",
"php": ">=8.2",
"psr/cache": "^1.0 || ^2.0 || ^3.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^3.1",
"symfony/http-foundation": "^6.4 || ^7.0",
"symfony/http-kernel": "^6.4 || ^7.0",
"symfony/property-access": "^6.4 || ^7.0",
"symfony/property-info": "^6.4 || ^7.0",
"symfony/serializer": "^6.4 || ^7.0",
"symfony/translation-contracts": "^3.3",
"symfony/web-link": "^6.4 || ^7.0",
"willdurand/negotiation": "^3.1"
},
"conflict": {
"doctrine/common": "<3.2.2",
"doctrine/dbal": "<2.10",
"doctrine/mongodb-odm": "<2.4",
"doctrine/orm": "<2.14.0",
"doctrine/persistence": "<1.3",
"phpspec/prophecy": "<1.15",
"phpunit/phpunit": "<9.5",
"symfony/framework-bundle": "6.4.6 || 7.0.6",
"symfony/var-exporter": "<6.1.1"
},
"require-dev": {
"api-platform/doctrine-common": "^3.4 || ^4.0",
"api-platform/doctrine-odm": "^3.4 || ^4.0",
"api-platform/doctrine-orm": "^3.4 || ^4.0",
"api-platform/documentation": "^3.4 || ^4.0",
"api-platform/elasticsearch": "^3.4 || ^4.0",
"api-platform/graphql": "^3.4 || ^4.0",
"api-platform/http-cache": "^3.4 || ^4.0",
"api-platform/hydra": "^3.4 || ^4.0",
"api-platform/json-api": "^3.3 || ^4.0",
"api-platform/json-schema": "^3.4 || ^4.0",
"api-platform/jsonld": "^3.4 || ^4.0",
"api-platform/metadata": "^3.4 || ^4.0",
"api-platform/openapi": "^3.4 || ^4.0",
"api-platform/ramsey-uuid": "^3.4 || ^4.0",
"api-platform/serializer": "^3.4 || ^4.0",
"api-platform/state": "^3.4 || ^4.0",
"api-platform/validator": "^3.4 || ^4.0",
"behat/behat": "^3.11",
"behat/mink": "^1.9",
"doctrine/cache": "^1.11 || ^2.1",
"doctrine/common": "^3.2.2",
"doctrine/dbal": "^4.0",
"doctrine/doctrine-bundle": "^2.11",
"doctrine/mongodb-odm": "^2.6",
"doctrine/mongodb-odm-bundle": "^4.0 || ^5.0",
"doctrine/orm": "^2.17 || ^3.0",
"elasticsearch/elasticsearch": "^8.4",
"friends-of-behat/mink-browserkit-driver": "^1.3.1",
"friends-of-behat/mink-extension": "^2.2",
"friends-of-behat/symfony-extension": "^2.1",
"guzzlehttp/guzzle": "^6.0 || ^7.0",
"illuminate/config": "^11.0",
"illuminate/contracts": "^11.0",
"illuminate/database": "^11.0",
"illuminate/http": "^11.0",
"illuminate/pagination": "^11.0",
"illuminate/routing": "^11.0",
"illuminate/support": "^11.0",
"jangregor/phpstan-prophecy": "^1.0",
"justinrainbow/json-schema": "^5.2.11",
"laravel/framework": "^11.0",
"orchestra/testbench": "^9.1",
"phpspec/prophecy-phpunit": "^2.2",
"phpstan/extension-installer": "^1.1",
"phpstan/phpdoc-parser": "^1.13",
"phpstan/phpstan": "^1.10",
"phpstan/phpstan-doctrine": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
"phpstan/phpstan-symfony": "^1.0",
"phpunit/phpunit": "^11.2",
"psr/log": "^1.0 || ^2.0 || ^3.0",
"ramsey/uuid": "^4.0",
"ramsey/uuid-doctrine": "^2.0",
"soyuka/contexts": "^3.3.10",
"soyuka/pmu": "^0.0.12",
"soyuka/stubs-mongodb": "^1.0",
"symfony/asset": "^6.4 || ^7.0",
"symfony/browser-kit": "^6.4 || ^7.0",
"symfony/cache": "^6.4 || ^7.0",
"symfony/config": "^6.4 || ^7.0",
"symfony/console": "^6.4 || ^7.0",
"symfony/css-selector": "^6.4 || ^7.0",
"symfony/dependency-injection": "^6.4 || ^7.0",
"symfony/doctrine-bridge": "^6.4.2 || ^7.0.2",
"symfony/dom-crawler": "^6.4 || ^7.0",
"symfony/error-handler": "^6.4 || ^7.0",
"symfony/event-dispatcher": "^6.4 || ^7.0",
"symfony/expression-language": "^6.4 || ^7.0",
"symfony/finder": "^6.4 || ^7.0",
"symfony/form": "^6.4 || ^7.0",
"symfony/framework-bundle": "^6.4 || ^7.0",
"symfony/http-client": "^6.4 || ^7.0",
"symfony/intl": "^6.4 || ^7.0",
"symfony/maker-bundle": "^1.24",
"symfony/mercure-bundle": "*",
"symfony/messenger": "^6.4 || ^7.0",
"symfony/routing": "^6.4 || ^7.0",
"symfony/security-bundle": "^6.4 || ^7.0",
"symfony/security-core": "^6.4 || ^7.0",
"symfony/stopwatch": "^6.4 || ^7.0",
"symfony/string": "^6.4 || ^7.0",
"symfony/twig-bundle": "^6.4 || ^7.0",
"symfony/uid": "^6.4 || ^7.0",
"symfony/validator": "^6.4 || ^7.0",
"symfony/web-profiler-bundle": "^6.4 || ^7.0",
"symfony/yaml": "^6.4 || ^7.0",
"twig/twig": "^1.42.3 || ^2.12 || ^3.0",
"webonyx/graphql-php": "^15.0"
},
"suggest": {
"doctrine/mongodb-odm-bundle": "To support MongoDB. Only versions 4.0 and later are supported.",
"elasticsearch/elasticsearch": "To support Elasticsearch.",
"ocramius/package-versions": "To display the API Platform's version in the debug bar.",
"phpstan/phpdoc-parser": "To support extracting metadata from PHPDoc.",
"psr/cache-implementation": "To use metadata caching.",
"ramsey/uuid": "To support Ramsey's UUID identifiers.",
"symfony/cache": "To have metadata caching when using Symfony integration.",
"symfony/config": "To load XML configuration files.",
"symfony/expression-language": "To use authorization features.",
"symfony/http-client": "To use the HTTP cache invalidation system.",
"symfony/messenger": "To support messenger integration.",
"symfony/security": "To use authorization features.",
"symfony/twig-bundle": "To use the Swagger UI integration.",
"symfony/uid": "To support Symfony UUID/ULID identifiers.",
"symfony/web-profiler-bundle": "To use the data collector.",
"webonyx/graphql-php": "To support GraphQL."
},
"type": "library",
"extra": {
"pmu": {
"projects": [
"./src/*/composer.json",
"src/Doctrine/*/composer.json"
]
},
"thanks": {
"url": "https://github.com/api-platform/api-platform",
"name": "api-platform/api-platform"
},
"symfony": {
"require": "^6.4 || ^7.0"
},
"branch-alias": {
"dev-3.4": "3.4.x-dev",
"dev-main": "4.0.x-dev"
}
},
"autoload": {
"psr-4": {
"ApiPlatform\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kévin Dunglas",
"email": "kevin@dunglas.fr",
"homepage": "https://dunglas.fr"
}
],
"description": "Build a fully-featured hypermedia or GraphQL API in minutes!",
"homepage": "https://api-platform.com",
"keywords": [
"Hydra",
"JSON-LD",
"api",
"graphql",
"hal",
"jsonapi",
"laravel",
"openapi",
"rest",
"swagger",
"symfony"
],
"support": {
"issues": "https://github.com/api-platform/core/issues",
"source": "https://github.com/api-platform/core/tree/v4.0.1"
},
"time": "2024-09-19T16:21:53+00:00"
},
{ {
"name": "api-platform/doctrine-common", "name": "api-platform/doctrine-common",
"version": "v4.1.10", "version": "v4.1.10",
@ -3228,37 +3023,6 @@
], ],
"time": "2025-03-24T10:02:05+00:00" "time": "2025-03-24T10:02:05+00:00"
}, },
{
"name": "mycrm/billing-module",
"version": "v1.0.0",
"source": {
"type": "git",
"url": "https://git.osdata-home.de/mycrm/mycrm-billing-module",
"reference": "619493bdf87512aff5100da1a528b1e6da9e63e1"
},
"require": {
"api-platform/core": "^4.0",
"doctrine/orm": "^3.0",
"php": ">=8.2",
"symfony/framework-bundle": "^7.1"
},
"type": "symfony-bundle",
"extra": {
"symfony": {
"require": "7.1.*"
}
},
"autoload": {
"psr-4": {
"MyCRM\\BillingModule\\": "src/"
}
},
"license": [
"proprietary"
],
"description": "Ausgangsrechnungsverwaltung für myCRM",
"time": "2025-12-05T10:24:44+00:00"
},
{ {
"name": "nelmio/cors-bundle", "name": "nelmio/cors-bundle",
"version": "2.6.0", "version": "2.6.0",

View File

@ -14,9 +14,8 @@ return [
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true], Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
ApiPlatform\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true], KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
MyCRM\BillingModule\BillingModuleBundle::class => ['all' => true], ApiPlatform\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
]; ];

View File

@ -1,18 +1,4 @@
{ {
"api-platform/core": {
"version": "4.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "4.0",
"ref": "cb9e6b8ceb9b62f32d41fc8ad72a25d5bd674c6d"
},
"files": [
"config/packages/api_platform.yaml",
"config/routes/api_platform.yaml",
"src/ApiResource/.gitignore"
]
},
"api-platform/symfony": { "api-platform/symfony": {
"version": "4.1", "version": "4.1",
"recipe": { "recipe": {
@ -87,9 +73,6 @@
"config/packages/knpu_oauth2_client.yaml" "config/packages/knpu_oauth2_client.yaml"
] ]
}, },
"mycrm/billing-module": {
"version": "dev-main"
},
"nelmio/cors-bundle": { "nelmio/cors-bundle": {
"version": "2.6", "version": "2.6",
"recipe": { "recipe": {