cachet.php 、Cachet ステータス ページ (https://cachethq.io/) 用の PHP クライアント ライブラリです。
このライブラリは、監視ダッシュボード、クライアント チケット発行システム、その他の Web アプリケーションなど、他のシステムの 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
オブジェクトで適切なゲッター メソッドを呼び出すだけです。 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) でお問い合わせください。