Skip to content

Commit 2976688

Browse files
author
klapaudius
committed
Update Symfony dependencies to support version 8.0
1 parent dd5eb75 commit 2976688

File tree

6 files changed

+182
-140
lines changed

6 files changed

+182
-140
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
### Version 1.8.0 (Unreleased)
2+
- **Compatibility:**
3+
- Full support for Symfony 8.0
4+
- Maintains backward compatibility with Symfony 6.4 and 7.4
5+
16
### Version 1.7.0
27
- **Core Features:**
38
- Add dynamic resource loading system with ResourceProviderInterface for runtime resource registration

composer.json

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,19 @@
1010
"ext-json": "*",
1111
"ext-fileinfo": "*",
1212
"psr/log": "^3.0",
13-
"symfony/cache": "~7.0|^6.4",
14-
"symfony/config": "~7.0|^6.4",
15-
"symfony/console": "~7.0|^6.4",
16-
"symfony/dependency-injection": "~7.0|^6.4",
17-
"symfony/finder": "~7.0|^6.4",
18-
"symfony/http-foundation": "~7.0|^6.4",
19-
"symfony/http-kernel": "~7.0|^6.4",
20-
"symfony/routing": "~7.0|^6.4"
13+
"symfony/cache": "~8.0|^7.4|^6.4",
14+
"symfony/config": "~8.0|^7.4|^6.4",
15+
"symfony/console": "~8.0|^7.4|^6.4",
16+
"symfony/dependency-injection": "~8.0|^7.4|^6.4",
17+
"symfony/finder": "~8.0|^7.4|^6.4",
18+
"symfony/http-foundation": "~8.0|^7.4|^6.4",
19+
"symfony/http-kernel": "~8.0|^7.4|^6.4",
20+
"symfony/routing": "~8.0|^7.4|^6.4",
21+
"symfony/yaml": "~8.0|^7.4|^6.4"
2122
},
2223
"require-dev": {
2324
"phpunit/phpunit": "~11.0|~10.0",
24-
"symfony/phpunit-bridge": "~7.0|^6.4",
25+
"symfony/phpunit-bridge": "~8.0|^7.4|^6.4",
2526
"phpstan/phpstan-deprecation-rules": "^1.1||^2.0",
2627
"phpstan/phpstan-phpunit": "^1.3||^2.0"
2728
},

src/DependencyInjection/KlpMcpServerExtension.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
use Symfony\Component\Config\FileLocator;
66
use Symfony\Component\DependencyInjection\ContainerBuilder;
77
use Symfony\Component\DependencyInjection\Extension\Extension;
8-
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
8+
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
99

1010
class KlpMcpServerExtension extends Extension
1111
{
1212
public function load(array $configs, ContainerBuilder $container): void
1313
{
1414
$config = $this->processConfiguration(new Configuration, $configs);
15-
$loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__).'/Resources/config'));
16-
$loader->load('services.xml');
15+
$loader = new YamlFileLoader($container, new FileLocator(dirname(__DIR__).'/Resources/config'));
16+
$loader->load('services.yaml');
1717

1818
$container->setParameter('klp_mcp_server.enabled', $config['enabled']);
1919
$container->setParameter('klp_mcp_server.server.name', $config['server']['name']);

src/Resources/config/services.xml

Lines changed: 0 additions & 127 deletions
This file was deleted.

src/Resources/config/services.yaml

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
services:
2+
# Auto-configuration via instanceof
3+
_instanceof:
4+
KLP\KlpMcpServer\Services\ToolService\ToolProviderInterface:
5+
tags: ['klp_mcp_server.tool_provider']
6+
7+
KLP\KlpMcpServer\Services\ResourceService\ResourceProviderInterface:
8+
tags: ['klp_mcp_server.resource_provider']
9+
10+
KLP\KlpMcpServer\Services\PromptService\PromptProviderInterface:
11+
tags: ['klp_mcp_server.prompt_provider']
12+
13+
# Controllers
14+
KLP\KlpMcpServer\Controllers\SseController:
15+
class: KLP\KlpMcpServer\Controllers\SseController
16+
arguments:
17+
- '@klp_mcp_server.server'
18+
tags:
19+
- { name: 'controller.service_arguments' }
20+
21+
KLP\KlpMcpServer\Controllers\StreamableHttpController:
22+
class: KLP\KlpMcpServer\Controllers\StreamableHttpController
23+
arguments:
24+
- '@klp_mcp_server.server'
25+
- '@?logger'
26+
tags:
27+
- { name: 'controller.service_arguments' }
28+
29+
KLP\KlpMcpServer\Controllers\MessageController:
30+
class: KLP\KlpMcpServer\Controllers\MessageController
31+
arguments:
32+
- '@klp_mcp_server.server'
33+
- '@?logger'
34+
tags:
35+
- { name: 'controller.service_arguments' }
36+
37+
# Server Capabilities
38+
KLP\KlpMcpServer\Server\ServerCapabilitiesInterface:
39+
class: KLP\KlpMcpServer\Server\ServerCapabilities
40+
41+
# Console Commands
42+
klp_mcp_server.command.make_prompt:
43+
class: KLP\KlpMcpServer\Command\MakeMcpPromptCommand
44+
arguments:
45+
- '@kernel'
46+
tags:
47+
- { name: 'console.command' }
48+
49+
klp_mcp_server.command.make_tool:
50+
class: KLP\KlpMcpServer\Command\MakeMcpToolCommand
51+
arguments:
52+
- '@kernel'
53+
tags:
54+
- { name: 'console.command' }
55+
56+
klp_mcp_server.command.migrate_tool:
57+
class: KLP\KlpMcpServer\Command\MigrateToolSchemaCommand
58+
tags:
59+
- { name: 'console.command' }
60+
61+
klp_mcp_server.command.test_prompt:
62+
class: KLP\KlpMcpServer\Command\TestMcpPromptCommand
63+
arguments:
64+
- '@klp_mcp_server.prompt_repository'
65+
tags:
66+
- { name: 'console.command' }
67+
68+
klp_mcp_server.command.test_tool:
69+
class: KLP\KlpMcpServer\Command\TestMcpToolCommand
70+
arguments:
71+
- '@service_container'
72+
tags:
73+
- { name: 'console.command' }
74+
75+
# Route Loader
76+
klp_mcp_server.route_loader:
77+
class: KLP\KlpMcpServer\Routing\Loader\McpRouteLoader
78+
tags:
79+
- { name: 'routing.loader' }
80+
81+
# Adapter Factory
82+
klp_mcp_server.adapter.factory:
83+
class: KLP\KlpMcpServer\Transports\SseAdapters\SseAdapterFactory
84+
arguments:
85+
- '@service_container'
86+
- '@?logger'
87+
88+
# Transport Factory
89+
klp_mcp_server.transport.factory:
90+
class: KLP\KlpMcpServer\Transports\Factory\TransportFactory
91+
arguments:
92+
- '@router'
93+
- '@?klp_mcp_server.adapter'
94+
- '@?logger'
95+
- '%klp_mcp_server.ping.enabled%'
96+
- '%klp_mcp_server.ping.interval%'
97+
98+
# Adapter (created via factory)
99+
klp_mcp_server.adapter:
100+
class: KLP\KlpMcpServer\Transports\SseAdapters\SseAdapterInterface
101+
factory: ['@klp_mcp_server.adapter.factory', 'create']
102+
103+
# Protocol
104+
klp_mcp_server.protocol:
105+
class: KLP\KlpMcpServer\Protocol\MCPProtocol
106+
arguments:
107+
- '@?klp_mcp_server.transport.factory'
108+
109+
# MCP Server
110+
klp_mcp_server.server:
111+
class: KLP\KlpMcpServer\Server\MCPServer
112+
arguments:
113+
- '@?klp_mcp_server.protocol'
114+
- '@?klp_mcp_server.progress_notifier_repository'
115+
-
116+
name: '%klp_mcp_server.server.name%'
117+
version: '%klp_mcp_server.server.version%'
118+
- '@?klp_mcp_server.sampling_client'
119+
120+
# Tool Repository
121+
klp_mcp_server.tool_repository:
122+
class: KLP\KlpMcpServer\Services\ToolService\ToolRepository
123+
arguments:
124+
- '@?service_container'
125+
- '@?logger'
126+
127+
# Progress Notifier Repository
128+
klp_mcp_server.progress_notifier_repository:
129+
class: KLP\KlpMcpServer\Services\ProgressService\ProgressNotifierRepository
130+
arguments:
131+
- '@?klp_mcp_server.transport.factory'
132+
133+
# Capabilities
134+
klp_mcp_server.capabilities:
135+
class: KLP\KlpMcpServer\Services\ToolService\ToolRepository
136+
arguments:
137+
- '@?service_container'
138+
139+
# Resource Repository
140+
klp_mcp_server.resource_repository:
141+
class: KLP\KlpMcpServer\Services\ResourceService\ResourceRepository
142+
arguments:
143+
- '@?service_container'
144+
- '@?logger'
145+
146+
# Prompt Repository
147+
klp_mcp_server.prompt_repository:
148+
class: KLP\KlpMcpServer\Services\PromptService\PromptRepository
149+
arguments:
150+
- '@?service_container'
151+
- '@?logger'
152+
153+
# Sampling Client
154+
klp_mcp_server.sampling_client:
155+
class: KLP\KlpMcpServer\Services\SamplingService\SamplingClient
156+
arguments:
157+
- '@klp_mcp_server.transport.factory'
158+
- '@?logger'
159+
160+
# Public aliases for controllers
161+
klp_mcp_server.controller.sse: '@KLP\KlpMcpServer\Controllers\SseController'
162+
klp_mcp_server.controller.streamable_http: '@KLP\KlpMcpServer\Controllers\StreamableHttpController'
163+
klp_mcp_server.controller.message: '@KLP\KlpMcpServer\Controllers\MessageController'

tests/Command/MigrateToolSchemaCommandTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ protected function setUp(): void
2323
{
2424
$this->command = new MigrateToolSchemaCommand;
2525
$application = new Application;
26-
$application->add($this->command);
26+
$application->addCommand($this->command);
2727
$this->commandTester = new CommandTester($this->command);
2828

2929
// Create temporary directory for test files

0 commit comments

Comments
 (0)