refactor: integrate cache parameter into setDiscovery() method (#80)
* refactor: integrate cache parameter into setDiscovery() method - Add cache as 4th parameter to setDiscovery() - Rename $cache to $discoveryCache for clarity - Remove separate setCache() method - Update example to use new API * docs: update discovery caching documentation to use new API - Update examples to use cache parameter in setDiscovery() method - Remove references to separate setCache() method calls
This commit is contained in:
parent
e46b7c139d
commit
7d599f4f64
3 changed files with 9 additions and 21 deletions
|
|
@ -21,8 +21,7 @@ use Symfony\Component\Cache\Psr16Cache;
|
||||||
|
|
||||||
$server = Server::make()
|
$server = Server::make()
|
||||||
->setServerInfo('My Server', '1.0.0')
|
->setServerInfo('My Server', '1.0.0')
|
||||||
->setDiscovery(__DIR__, ['.'])
|
->setDiscovery(__DIR__, ['.'], [], new Psr16Cache(new ArrayAdapter())) // Enable caching
|
||||||
->setCache(new Psr16Cache(new ArrayAdapter())) // Enable caching
|
|
||||||
->build();
|
->build();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -69,8 +68,7 @@ $cache = DoctrineProvider::wrap(new ArrayCache());
|
||||||
$cache = new Psr16Cache(new ArrayAdapter());
|
$cache = new Psr16Cache(new ArrayAdapter());
|
||||||
|
|
||||||
$server = Server::make()
|
$server = Server::make()
|
||||||
->setDiscovery(__DIR__, ['.'])
|
->setDiscovery(__DIR__, ['.'], [], $cache)
|
||||||
->setCache($cache)
|
|
||||||
->build();
|
->build();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -81,8 +79,7 @@ $server = Server::make()
|
||||||
$cache = new Psr16Cache(new FilesystemAdapter('mcp-discovery', 0, '/var/cache'));
|
$cache = new Psr16Cache(new FilesystemAdapter('mcp-discovery', 0, '/var/cache'));
|
||||||
|
|
||||||
$server = Server::make()
|
$server = Server::make()
|
||||||
->setDiscovery(__DIR__, ['.'])
|
->setDiscovery(__DIR__, ['.'], [], $cache)
|
||||||
->setCache($cache)
|
|
||||||
->build();
|
->build();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,7 @@ $server = Server::make()
|
||||||
->setServerInfo('Cached Discovery Calculator', '1.0.0', 'Calculator with cached discovery for better performance.')
|
->setServerInfo('Cached Discovery Calculator', '1.0.0', 'Calculator with cached discovery for better performance.')
|
||||||
->setContainer(container())
|
->setContainer(container())
|
||||||
->setLogger(logger())
|
->setLogger(logger())
|
||||||
->setDiscovery(__DIR__, ['.'])
|
->setDiscovery(__DIR__, ['.'], [], new Psr16Cache(new ArrayAdapter()))
|
||||||
->setCache(new Psr16Cache(new ArrayAdapter()))
|
|
||||||
->build();
|
->build();
|
||||||
|
|
||||||
$transport = new StdioTransport(logger: logger());
|
$transport = new StdioTransport(logger: logger());
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ final class ServerBuilder
|
||||||
|
|
||||||
private ?LoggerInterface $logger = null;
|
private ?LoggerInterface $logger = null;
|
||||||
|
|
||||||
private ?CacheInterface $cache = null;
|
private ?CacheInterface $discoveryCache = null;
|
||||||
|
|
||||||
private ?ToolCallerInterface $toolCaller = null;
|
private ?ToolCallerInterface $toolCaller = null;
|
||||||
|
|
||||||
|
|
@ -220,20 +220,12 @@ final class ServerBuilder
|
||||||
string $basePath,
|
string $basePath,
|
||||||
array $scanDirs = ['.', 'src'],
|
array $scanDirs = ['.', 'src'],
|
||||||
array $excludeDirs = [],
|
array $excludeDirs = [],
|
||||||
|
?CacheInterface $cache = null,
|
||||||
): self {
|
): self {
|
||||||
$this->discoveryBasePath = $basePath;
|
$this->discoveryBasePath = $basePath;
|
||||||
$this->discoveryScanDirs = $scanDirs;
|
$this->discoveryScanDirs = $scanDirs;
|
||||||
$this->discoveryExcludeDirs = $excludeDirs;
|
$this->discoveryExcludeDirs = $excludeDirs;
|
||||||
|
$this->discoveryCache = $cache;
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enables discovery caching with the provided cache implementation.
|
|
||||||
*/
|
|
||||||
public function setCache(CacheInterface $cache): self
|
|
||||||
{
|
|
||||||
$this->cache = $cache;
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
@ -323,8 +315,8 @@ final class ServerBuilder
|
||||||
if (null !== $this->discoveryBasePath) {
|
if (null !== $this->discoveryBasePath) {
|
||||||
$discovery = new Discoverer($registry, $logger);
|
$discovery = new Discoverer($registry, $logger);
|
||||||
|
|
||||||
if (null !== $this->cache) {
|
if (null !== $this->discoveryCache) {
|
||||||
$discovery = new CachedDiscoverer($discovery, $this->cache, $logger);
|
$discovery = new CachedDiscoverer($discovery, $this->discoveryCache, $logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
$discovery->discover($this->discoveryBasePath, $this->discoveryScanDirs, $this->discoveryExcludeDirs);
|
$discovery->discover($this->discoveryBasePath, $this->discoveryScanDirs, $this->discoveryExcludeDirs);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue