cachet.php ist eine PHP-Client-Bibliothek für die Cachet-Statusseite (https://cachethq.io/).
Diese Bibliothek könnte für die Anzeige von Details Ihrer Cachet-Statusseite in anderen Systemen nützlich sein, beispielsweise in einem Überwachungs-Dashboard, einem Kundenticketsystem oder anderen Webanwendungen.
Wenn Sie cachet.php mit Composer herunterladen möchten, werfen Sie einen Blick auf Packagist: https://packagist.org/packages/divineomega/cachetphp
Bevor Sie beginnen, installieren Sie die Bibliothek cachet.php über Composer.
Jetzt müssen Sie ein CachetInstance-Objekt erstellen, das Ihre Cachet-Installation darstellt. Sie können dies folgendermaßen tun:
require_once ' vendor/autoload.php ' ;
use DivineOmega CachetPHP Factories CachetInstanceFactory ;
// The API token for the demo instance is 9yMHsdioQosnyVK4iCVR.
$ cachetInstance = CachetInstanceFactory:: create ( ' https://demo.cachethq.io/api/v1/ ' , ' 9yMHsdioQosnyVK4iCVR ' );
Das Abrufen von Daten aus den verschiedenen Elementen Ihrer Cachet-Instanz ist einfach. Rufen Sie einfach die entsprechende Getter-Methode für Ihr $cachetInstance
Objekt auf. Die Cachet-Installation wird kontaktiert und eine Reihe von für die Anforderung geeigneten Objekten zurückgegeben.
$ components = $ cachetInstance -> getAllComponents (); // Components
$ incidents = $ cachetInstance -> getAllIncidents (); // Incidents
$ incidentUpdates = $ incidents [ 0 ]-> getAllIncidentUpdates (); // Incident Updates (Cachet 2.4.0 or above required)
$ metrics = $ cachetInstance -> getAllMetrics (); // Metrics
$ metricPoints = $ metrics [ 0 ]-> getAllMetricPoints (); // Metric Points
$ subscribers = $ cachetInstance -> getAllSubscribers (); // Subscribers
Um ein einzelnes Cachet-Element anhand seiner ID abzurufen, können Sie Code ähnlich der folgenden Methode verwenden.
// Get incident by id
$ incident = $ cachetInstance -> getIncidentById ( $ incidentId );
Wenn Sie Ihre Ergebnisse sortieren möchten, können Sie die folgende Syntax verwenden. Dies funktioniert für Komponenten, Vorfälle, Metriken, Metrikpunkte und Abonnenten.
// Get components sorted by name ascending
$ components = $ cachetInstance -> getAllComponents ( ' name ' , ' asc ' );
Das Lesen von Daten aus abgerufenen Cachet-Elementobjekten ist einfach. Greifen Sie einfach auf ihre öffentlichen Mitgliedsvariablen zu.
Hier ist ein Beispiel für die Ausgabe von ID, Name, Beschreibung und Status einer Cachet-Komponente.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Display components
foreach ( $ components as $ component ) {
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
echo " <br/> " ;
}
Informationen zu den für jeden Typ von Cachet-Elementen verfügbaren Variablen finden Sie in der offiziellen Cachet-Dokumentation.
Mithilfe der Bibliothek cachet.php können Sie ganz einfach ein Cachet-Element, beispielsweise eine Komponente oder einen Vorfall, erstellen. Dabei wird ein assoziatives Array der Details für die Cachet-Elemente erstellt und dieses dann an die entsprechende Erstellungsmethode übergeben.
Das folgende Beispiel zeigt Ihnen, wie Sie eine einfache Testkomponente erstellen.
$ componentDetails = [ ' name ' => ' Test Component ' . rand ( 1 , 99999 ), ' status ' => 1 ];
$ component = $ cachetInstance -> createComponent ( $ componentDetails );
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
Das ausführlichere Beispiel unten zeigt, wie Sie einen Vorfall erstellen und ihm eine Vorfallaktualisierung hinzufügen. Bitte beachten Sie, dass Cachet 2.4.0 oder höher erforderlich ist, wenn Sie Vorfallaktualisierungen verwenden möchten.
$ incidentDetails = [ ' name ' => ' Test Incident ' . rand ( 1 , 99999 ), ' message ' => ' Incident message ' . rand ( 1 , 99999 ), ' status ' => 1 , ' visible ' => 1 ];
$ incident = $ cachetInstance -> createIncident ( $ incidentDetails );
$ incidentUpdateDetails = [ ' status ' => 2 , ' message ' => ' Test incident update ' . rand ( 1 , 99999 )];
$ incidentUpdate = $ incident -> createIncidentUpdate ( $ incidentUpdateDetails );
echo $ incidentUpdate -> id . ' - ' . $ incidentUpdate -> incident_id . ' - ' . $ incidentUpdate -> status . ' - ' . $ incidentUpdate -> message ;
Mit der cachet.php können Sie Änderungen an einem Cachet-Element vornehmen und diese Änderungen wieder in Ihrer Cachet-Installation speichern. Dies geschieht durch direktes Ändern der öffentlichen Mitgliedsvariablen des Cachet-Elements und anschließenden Aufruf der save()
Methode des Objekts.
Das folgende Beispiel zeigt, wie Sie den Namen und den Status einer Komponente ändern und die Änderungen anschließend speichern.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Change component details
$ component [ 0 ]-> name = ' My awesome component ' ;
$ component [ 0 ]-> status = 1 ;
$ component [ 0 ]-> save ();
Wenn Sie einen Vorfall mit einer component_id
erstellen, können Sie auch einen component_status
einschließen, um den Status der Komponente gleichzeitig mit der Erstellung des Vorfalls zu ändern. Siehe das Beispiel unten.
$ incidentDetails = [ ' name ' => ' Test Incident ' . rand ( 1 , 99999 ), ' message ' => ' Incident message ' . rand ( 1 , 99999 ), ' status ' => 1 , ' visible ' => 1 ,
' component_id ' => 1 , ' component_status ' => 1 ];
$ incident = $ cachetInstance -> createIncident ( $ incidentDetails );
Beim Erstellen von Vorfallaktualisierungen können Sie auch einen component_status
angeben, um den Status der Komponente zu ändern, wenn die Vorfallaktualisierung erstellt wird. Siehe das Beispiel unten.
$ incidentUpdateDetails = [ ' status ' => 2 , ' message ' => ' Test incident update ' . rand ( 1 , 99999 ), ' component_status ' => 2 ];
$ incidentUpdate = $ incident -> createIncidentUpdate ( $ incidentUpdateDetails );
Sie können einen Komponentenstatus auch über einen Vorfall oder eine Vorfallaktualisierung ändern, indem Sie den component_status
des zugehörigen Objekts ändern und speichern, wie unten in den Beispielen gezeigt. Beachten Sie, dass dies nur funktioniert, wenn der Vorfall mit einer zugehörigen component_id
erstellt wurde.
$ incident -> component_status = 2 ;
$ incident -> save ();
$ incidentUpdate -> component_status = 3 ;
$ incidentUpdate -> save ();
Um ein Cachet-Element aus Ihrer Cachet-Installation zu löschen, müssen Sie lediglich die Methode delete()
für das entsprechende Cachet-Elementobjekt aufrufen.
Um beispielsweise einen Vorfall zu löschen, können Sie wie folgt vorgehen.
// Get incidents
$ incidents = $ cachetInstance -> getAllIncidents ();
// Delete the first one
$ incidents [ 0 ]-> delete ();
Wenn Sie einen Fehler oder eine neue Funktion gefunden haben, melden Sie diese bitte als GitHub-Problem.
Für weitere Fragen stehe ich auf Twitter (Jordan Hall) zur Verfügung.