Skip to content

mangati/cachet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cachet

Cachet PHP client.

About Cachet

Cachet is an open source status page system written in PHP. https://github.com/CachetHQ/Cachet.

Usage

Setup

use Mangati\Cachet\Client;

$endpoint = 'https://demo.cachethq.io/api/v1/';
$token    = '9yMHsdioQosnyVK4iCVR';

$client = new Client($endpoint, $token);

Components

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);

Incidents

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);

Known issue

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");