Cachet PHP client.
Cachet is an open source status page system written in PHP. https://github.com/CachetHQ/Cachet.
Setup
use Mangati\Cachet\Client;
$endpoint = 'https://demo.cachethq.io/api/v1/';
$token = '9yMHsdioQosnyVK4iCVR';
$client = new Client($endpoint, $token);
Get components
$components = $client->getComponents();
foreach ($components as $component) {
echo $component->getName();
}
Sorting
$components = $client->getComponents([
'sort' => 'id',
'order' => 'desc'
]);
Get by id
$component = $client->getComponent(3);
Create new component
$component = new Component();
$component->setName('My new component');
$component->setDescription('Component description');
$component->setLink('https://github.com/mangati/cachet');
$component->setStatus(Component::STATUS_OPERATIONAL);
$client->addComponent($component);
Update an existing component
$component = new Component();
$component->setId(3);
$component->setName('My new component (updated)');
$client->updateComponent($component);
Delete an existing component
$id = 3;
$client->deleteComponent($id);
Get incidents
$incidents = $client->getIncidents();
foreach ($incidents as $incident) {
echo $incident->getName();
}
Sorting
$incidents = $client->getIncidents([
'sort' => 'id',
'order' => 'desc'
]);
Get by id
$incident = $client->getIncident(3);
Create new incident
$incident = new Incident();
$incident->setName('My new incident');
$incident->setMessage('incident message');
$incident->setStatus(Incident::STATUS_WATCHING);
$client->addIncident($incident);
Update an existing incident
$incident = new Incident();
$incident->setId(3);
$incident->setStatus(Incident::STATUS_FIXED);
$client->updateIncident($incident);
Delete an existing incident
$id = 3;
$client->deleteIncident($id);
Doctrine annotation error:
PHP Fatal error: Uncaught exception 'Doctrine\Common\Annotations\AnnotationException' with message '[Semantical Error] The annotation "@JMS\Serializer\Annotation\Type" in property (...) does not exist, or could not be auto-loaded.'
Can fix it registering the JMS namespace:
Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace('JMS\Serializer\Annotation', $rootDir . "/vendor/jms/serializer/src");