cachet.php es una biblioteca cliente PHP para la página de estado de Cachet (https://cachethq.io/).
Esta biblioteca podría ser útil para mostrar detalles de su página de estado de Cachet en otros sistemas, como un panel de monitoreo, un sistema de tickets de clientes o cualquier otra aplicación web.
Si desea obtener cachet.php con Composer, eche un vistazo a Packagist: https://packagist.org/packages/divineomega/cachetphp
Antes de comenzar, instale la biblioteca cachet.php a través de Composer.
Ahora, necesita crear un objeto CachetInstance que represente su instalación de Cachet. Puedes hacer esto así:
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 ' );
Recuperar datos de los distintos elementos de su instancia de Cachet es fácil. Simplemente llame al método getter apropiado en su objeto $cachetInstance
. Se contactará con la instalación de Cachet y se devolverá una serie de objetos apropiados para la solicitud.
$ 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
Para recuperar un único elemento Cachet por su ID, puede utilizar un código similar al siguiente método.
// Get incident by id
$ incident = $ cachetInstance -> getIncidentById ( $ incidentId );
Si desea ordenar sus resultados, puede utilizar la siguiente sintaxis. Esto funciona para componentes, incidentes, métricas, puntos métricos y suscriptores.
// Get components sorted by name ascending
$ components = $ cachetInstance -> getAllComponents ( ' name ' , ' asc ' );
Leer datos de objetos de elementos Cachet recuperados es fácil. Simplemente acceda a sus variables de miembros públicos.
A continuación se muestra un ejemplo de cómo generar la identificación, el nombre, la descripción y el estado de un componente Cachet.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Display components
foreach ( $ components as $ component ) {
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
echo " <br/> " ;
}
Consulte la documentación oficial de Cachet para obtener información sobre las variables disponibles para cada tipo de elemento Cachet.
Puede crear un elemento Cachet, como un componente o incidente, muy fácilmente utilizando la biblioteca cachet.php . Esto implica crear una matriz asociativa de los detalles de los elementos Cachet y luego pasarla al método de creación relevante.
El siguiente ejemplo le muestra cómo crear un componente de prueba simple.
$ componentDetails = [ ' name ' => ' Test Component ' . rand ( 1 , 99999 ), ' status ' => 1 ];
$ component = $ cachetInstance -> createComponent ( $ componentDetails );
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
El ejemplo más completo a continuación muestra cómo crear un incidente y agregarle una actualización de incidente. Tenga en cuenta que se requiere Cachet 2.4.0 o superior si desea utilizar actualizaciones de incidentes.
$ 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 ;
cachet.php le permite realizar cambios en un elemento de Cachet y guardar esos cambios en su instalación de Cachet. Esto se hace cambiando directamente las variables miembro públicas del elemento Cachet y luego llamando al método save()
del objeto.
El siguiente ejemplo muestra cómo cambiar el nombre y el estado de un componente y luego guardar los cambios.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Change component details
$ component [ 0 ]-> name = ' My awesome component ' ;
$ component [ 0 ]-> status = 1 ;
$ component [ 0 ]-> save ();
Si crea un incidente con un component_id
, también puede incluir un component_status
para cambiar el estado del componente al mismo tiempo que crea el incidente. Vea el ejemplo a continuación.
$ 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 );
Al crear actualizaciones de incidentes, también puede especificar un component_status
para cambiar el estado del componente cuando se crea la actualización del incidente. Vea el ejemplo a continuación.
$ incidentUpdateDetails = [ ' status ' => 2 , ' message ' => ' Test incident update ' . rand ( 1 , 99999 ), ' component_status ' => 2 ];
$ incidentUpdate = $ incident -> createIncidentUpdate ( $ incidentUpdateDetails );
También puede cambiar el estado de un componente a través de un incidente o una actualización de incidente cambiando el component_status
en el objeto relacionado y guardando, como se muestra a continuación en los ejemplos siguientes. Tenga en cuenta que esto solo funcionará si el incidente se creó con un component_id
asociado.
$ incident -> component_status = 2 ;
$ incident -> save ();
$ incidentUpdate -> component_status = 3 ;
$ incidentUpdate -> save ();
Para eliminar un elemento Cachet de su instalación de Cachet, simplemente necesita llamar al método delete()
en el objeto del elemento Cachet apropiado.
Por ejemplo, para eliminar un incidente, puede hacer lo siguiente.
// Get incidents
$ incidents = $ cachetInstance -> getAllIncidents ();
// Delete the first one
$ incidents [ 0 ]-> delete ();
Si encontró un error o una característica nueva, infórmelo como un problema de GitHub.
Para otras consultas, estoy disponible en Twitter (Jordan Hall).