cachet.php 는 Cachet 상태 페이지(https://cachethq.io/)를 위한 PHP 클라이언트 라이브러리입니다.
이 라이브러리는 모니터링 대시보드, 클라이언트 티켓 시스템 또는 기타 웹 애플리케이션과 같은 다른 시스템의 Cachet 상태 페이지의 세부 정보를 표시하는 데 유용할 수 있습니다.
Composer로 cachet.php 가져오려면 Packagist를 살펴보세요: https://packagist.org/packages/divineomega/cachetphp
시작하기 전에 Composer를 통해 cachet.php 라이브러리를 설치하세요.
이제 Cachet 설치를 나타내는 CachetInstance 객체를 생성해야 합니다. 다음과 같이 할 수 있습니다:
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 ' );
Cachet 인스턴스의 다양한 요소에서 데이터를 검색하는 것은 쉽습니다. $cachetInstance
객체에서 적절한 getter 메소드를 호출하기만 하면 됩니다. Cachet 설치에 연결되고 요청에 맞는 개체 배열이 반환됩니다.
$ 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
ID로 단일 Cachet 요소를 검색하려면 다음 메서드와 유사한 코드를 사용할 수 있습니다.
// Get incident by id
$ incident = $ cachetInstance -> getIncidentById ( $ incidentId );
결과를 정렬하려면 다음 구문을 사용할 수 있습니다. 이는 구성 요소, 인시던트, 메트릭, 메트릭 포인트 및 구독자에 대해 작동합니다.
// Get components sorted by name ascending
$ components = $ cachetInstance -> getAllComponents ( ' name ' , ' asc ' );
검색된 Cachet 요소 개체에서 데이터를 읽는 것은 쉽습니다. 공개 멤버 변수에 액세스하면 됩니다.
다음은 Cachet 구성 요소의 ID, 이름, 설명 및 상태를 출력하는 예입니다.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Display components
foreach ( $ components as $ component ) {
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
echo " <br/> " ;
}
각 Cachet 요소 유형에 사용할 수 있는 변수에 대한 자세한 내용은 공식 Cachet 문서를 참조하세요.
cachet.php 라이브러리를 사용하면 구성 요소나 사건과 같은 Cachet 요소를 매우 쉽게 생성할 수 있습니다. 여기에는 Cachet 요소에 대한 세부 정보의 연관 배열을 생성한 다음 이를 관련 생성 메서드에 전달하는 작업이 포함됩니다.
다음 예에서는 간단한 테스트 구성 요소를 만드는 방법을 보여줍니다.
$ componentDetails = [ ' name ' => ' Test Component ' . rand ( 1 , 99999 ), ' status ' => 1 ];
$ component = $ cachetInstance -> createComponent ( $ componentDetails );
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
아래의 보다 포괄적인 예는 인시던트를 생성하고 인시던트 업데이트를 추가하는 방법을 보여줍니다. 사고 업데이트를 사용하려면 Cachet 2.4.0 이상이 필요합니다.
$ 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 사용하면 Cachet 요소를 변경하고 해당 변경 사항을 Cachet 설치에 다시 저장할 수 있습니다. 이는 Cachet 요소의 공용 멤버 변수를 직접 변경한 다음 객체의 save()
메서드를 호출하여 수행됩니다.
다음 예에서는 구성 요소의 이름과 상태를 변경한 후 변경 사항을 저장하는 방법을 보여줍니다.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Change component details
$ component [ 0 ]-> name = ' My awesome component ' ;
$ component [ 0 ]-> status = 1 ;
$ component [ 0 ]-> save ();
component_id
로 인시던트를 생성하는 경우, 인시던트 생성과 동시에 구성요소의 상태를 변경하기 위해 component_status
포함할 수도 있습니다. 아래 예를 참조하세요.
$ 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 );
인시던트 업데이트를 생성할 때, 인시던트 업데이트가 생성될 때 구성 요소의 상태를 변경하기 위해 component_status
지정할 수도 있습니다. 아래 예를 참조하세요.
$ incidentUpdateDetails = [ ' status ' => 2 , ' message ' => ' Test incident update ' . rand ( 1 , 99999 ), ' component_status ' => 2 ];
$ incidentUpdate = $ incident -> createIncidentUpdate ( $ incidentUpdateDetails );
아래 예제에 표시된 것처럼 관련 개체의 component_status
변경하고 저장하여 인시던트 또는 인시던트 업데이트를 통해 구성 요소 상태를 변경할 수도 있습니다. 이는 관련 component_id
사용하여 인시던트가 생성된 경우에만 작동합니다.
$ incident -> component_status = 2 ;
$ incident -> save ();
$ incidentUpdate -> component_status = 3 ;
$ incidentUpdate -> save ();
Cachet 설치에서 Cachet 요소를 삭제하려면 해당 Cachet 요소 개체에 대해 delete()
메서드를 호출하기만 하면 됩니다.
예를 들어 사건을 삭제하려면 다음을 수행할 수 있습니다.
// Get incidents
$ incidents = $ cachetInstance -> getAllIncidents ();
// Delete the first one
$ incidents [ 0 ]-> delete ();
버그나 새로운 기능을 발견한 경우 GitHub 문제로 보고해 주세요.
기타 문의사항은 Twitter(Jordan Hall)를 통해 문의하세요.