Introduce schema component
This commit is contained in:
parent
ee0dffe369
commit
6025f890f9
1 changed files with 5419 additions and 0 deletions
46
src/Schema/Notification/ResourceListChangedNotification.php
Normal file
46
src/Schema/Notification/ResourceListChangedNotification.php
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the official PHP MCP SDK.
|
||||
*
|
||||
* A collaboration between Symfony and the PHP Foundation.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Mcp\Schema\Notification;
|
||||
|
||||
use Mcp\Exception\InvalidArgumentException;
|
||||
use Mcp\Schema\JsonRpc\Notification;
|
||||
|
||||
/**
|
||||
* An optional notification from the server to the client, informing it that the list of resources it can read from has changed. This may be issued by servers without any previous subscription from the client.
|
||||
*
|
||||
* @author Kyrian Obikwelu <koshnawaza@gmail.com>
|
||||
*/
|
||||
class ResourceListChangedNotification extends Notification
|
||||
{
|
||||
/**
|
||||
* @param array<string, mixed>|null $_meta
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly ?array $_meta = null,
|
||||
) {
|
||||
$params = [];
|
||||
if (null !== $_meta) {
|
||||
$params['_meta'] = $_meta;
|
||||
}
|
||||
|
||||
parent::__construct('notifications/resources/list_changed', $params);
|
||||
}
|
||||
|
||||
public static function fromNotification(Notification $notification): self
|
||||
{
|
||||
if ('notifications/resources/list_changed' !== $notification->method) {
|
||||
throw new InvalidArgumentException('Notification is not a notifications/resources/list_changed notification');
|
||||
}
|
||||
|
||||
return new self($notification->params['_meta'] ?? null);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue