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:
xentixar 2025-09-25 20:26:11 +05:45 • committed by GitHub
commit 7d599f4f64
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -58,7 +58,7 @@ final class ServerBuilder
private ?LoggerInterface $logger = null;
private ?CacheInterface $cache = null;
private ?CacheInterface $discoveryCache = null;
private ?ToolCallerInterface $toolCaller = null;
@ -220,20 +220,12 @@ final class ServerBuilder
string $basePath,
array $scanDirs = ['.', 'src'],
array $excludeDirs = [],
?CacheInterface $cache = null,
): self {
$this->discoveryBasePath = $basePath;
$this->discoveryScanDirs = $scanDirs;
$this->discoveryExcludeDirs = $excludeDirs;
return $this;
}
/**
* Enables discovery caching with the provided cache implementation.
*/
public function setCache(CacheInterface $cache): self
{
$this->cache = $cache;
$this->discoveryCache = $cache;
return $this;
}
@ -323,8 +315,8 @@ final class ServerBuilder
if (null !== $this->discoveryBasePath) {
$discovery = new Discoverer($registry, $logger);
if (null !== $this->cache) {
$discovery = new CachedDiscoverer($discovery, $this->cache, $logger);
if (null !== $this->discoveryCache) {
$discovery = new CachedDiscoverer($discovery, $this->discoveryCache, $logger);
}
$discovery->discover($this->discoveryBasePath, $this->discoveryScanDirs, $this->discoveryExcludeDirs);