cachet.php é uma biblioteca cliente PHP para a página de status do Cachet (https://cachethq.io/).
Esta biblioteca pode ser útil para exibir detalhes da sua página de status do Cachet em outros sistemas, como um painel de monitoramento, um sistema de tickets de clientes ou qualquer outro aplicativo da web.
Se você quiser pegar cachet.php com o Composer, dê uma olhada no Packagist: https://packagist.org/packages/divineomega/cachetphp
Antes de começar, instale a biblioteca cachet.php via Composer.
Agora, você precisa criar um objeto CachetInstance que represente sua instalação do Cachet. Você pode fazer isso assim:
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 dados dos vários elementos da sua instância do Cachet é fácil. Basta chamar o método getter apropriado em seu objeto $cachetInstance
. A instalação do Cachet será contatada e uma série de objetos apropriados à solicitação será retornada.
$ 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 um único elemento Cachet por seu ID, você pode usar um código semelhante ao método a seguir.
// Get incident by id
$ incident = $ cachetInstance -> getIncidentById ( $ incidentId );
Se desejar classificar seus resultados, você pode usar a seguinte sintaxe. Isso funciona para componentes, incidentes, métricas, pontos de métrica e assinantes.
// Get components sorted by name ascending
$ components = $ cachetInstance -> getAllComponents ( ' name ' , ' asc ' );
Ler dados de objetos de elemento Cachet recuperados é fácil. Basta acessar suas variáveis de membros públicos.
Aqui está um exemplo de saída do id, nome, descrição e status de um 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 a documentação oficial do Cachet para obter informações sobre as variáveis disponíveis para cada tipo de elemento Cachet.
Você pode criar um elemento Cachet, como um componente ou incidente com muita facilidade usando a biblioteca cachet.php . Isso envolve a criação de uma matriz associativa dos detalhes dos elementos do Cachet e, em seguida, passá-la para o método de criação relevante.
O exemplo a seguir mostra como criar um componente de teste simples.
$ componentDetails = [ ' name ' => ' Test Component ' . rand ( 1 , 99999 ), ' status ' => 1 ];
$ component = $ cachetInstance -> createComponent ( $ componentDetails );
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
O exemplo mais abrangente abaixo mostra como criar um incidente e adicionar uma atualização de incidente a ele. Observe que o Cachet 2.4.0 ou superior é necessário se você deseja usar atualizações 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 ;
O cachet.php permite que você faça alterações em um elemento do Cachet e salve essas alterações de volta na instalação do Cachet. Isso é feito alterando diretamente as variáveis de membro público do elemento Cachet e, em seguida, chamando o método save()
do objeto.
O exemplo a seguir mostra como alterar o nome e o status de um componente e, em seguida, salvar as alterações.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Change component details
$ component [ 0 ]-> name = ' My awesome component ' ;
$ component [ 0 ]-> status = 1 ;
$ component [ 0 ]-> save ();
Se você criar um incidente com um component_id
, também poderá incluir um component_status
para alterar o status do componente ao mesmo tempo em que cria o incidente. Veja o exemplo abaixo.
$ 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 );
Ao criar atualizações de incidentes, você também pode especificar um component_status
para alterar o status do componente quando a atualização de incidente for criada. Veja o exemplo abaixo.
$ incidentUpdateDetails = [ ' status ' => 2 , ' message ' => ' Test incident update ' . rand ( 1 , 99999 ), ' component_status ' => 2 ];
$ incidentUpdate = $ incident -> createIncidentUpdate ( $ incidentUpdateDetails );
Você também pode alterar o status de um componente por meio de um incidente ou atualização de incidente, alterando o component_status
no objeto relacionado e salvando, conforme mostrado nos exemplos abaixo. Observe que isso só funcionará se o incidente tiver sido criado com um component_id
associado.
$ incident -> component_status = 2 ;
$ incident -> save ();
$ incidentUpdate -> component_status = 3 ;
$ incidentUpdate -> save ();
Para excluir um elemento Cachet de sua instalação do Cachet, você simplesmente precisa chamar o método delete()
no objeto do elemento Cachet apropriado.
Por exemplo, para excluir um incidente, você poderia fazer o seguinte.
// Get incidents
$ incidents = $ cachetInstance -> getAllIncidents ();
// Delete the first one
$ incidents [ 0 ]-> delete ();
Se você encontrou um bug ou um novo recurso, relate-o como um problema do GitHub.
Para outras dúvidas, estou disponível no Twitter (Jordan Hall).