cachet.php adalah perpustakaan klien PHP untuk halaman status Cachet (https://cachethq.io/).
Pustaka ini dapat berguna untuk menampilkan detail dari halaman status Cachet Anda di sistem lain, seperti dasbor pemantauan, sistem tiket klien, atau aplikasi web lainnya.
Jika Anda ingin mengambil cachet.php dengan Composer, lihat Packagist: https://packagist.org/packages/divineomega/cachetphp
Sebelum memulai, instal perpustakaan cachet.php melalui Komposer.
Sekarang, Anda perlu membuat objek CachetInstance yang mewakili instalasi Cachet Anda. Anda dapat melakukan ini seperti ini:
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 ' );
Mengambil data dari berbagai elemen instance Cachet Anda sangatlah mudah. Panggil saja metode pengambil yang sesuai pada objek $cachetInstance
Anda. Instalasi Cachet akan dihubungi dan serangkaian permintaan objek yang sesuai akan dikembalikan.
$ 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
Untuk mengambil satu elemen Cachet berdasarkan ID-nya, Anda dapat menggunakan kode yang mirip dengan metode berikut.
// Get incident by id
$ incident = $ cachetInstance -> getIncidentById ( $ incidentId );
Jika Anda ingin mengurutkan hasil, Anda dapat menggunakan sintaks berikut. Ini berfungsi untuk komponen, insiden, metrik, titik metrik, dan pelanggan.
// Get components sorted by name ascending
$ components = $ cachetInstance -> getAllComponents ( ' name ' , ' asc ' );
Membaca data dari objek elemen Cachet yang diambil itu mudah. Cukup akses variabel anggota publiknya.
Berikut ini contoh keluaran id, nama, deskripsi, dan status komponen Cachet.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Display components
foreach ( $ components as $ component ) {
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
echo " <br/> " ;
}
Lihat dokumentasi resmi Cachet untuk informasi tentang variabel yang tersedia untuk setiap jenis elemen Cachet.
Anda dapat membuat elemen Cachet, seperti komponen atau insiden dengan sangat mudah menggunakan perpustakaan cachet.php . Hal ini melibatkan pembuatan array asosiatif detail untuk elemen Cachet dan kemudian meneruskannya ke metode pembuatan yang relevan.
Contoh berikut menunjukkan cara membuat komponen pengujian sederhana.
$ componentDetails = [ ' name ' => ' Test Component ' . rand ( 1 , 99999 ), ' status ' => 1 ];
$ component = $ cachetInstance -> createComponent ( $ componentDetails );
echo $ component -> id . ' - ' . $ component -> name . ' - ' . $ component -> description . ' - ' . $ component -> status ;
Contoh yang lebih komprehensif di bawah ini menunjukkan cara membuat insiden dan menambahkan pembaruan insiden ke dalamnya. Harap dicatat bahwa Cachet 2.4.0 atau lebih tinggi diperlukan jika Anda ingin menggunakan pembaruan insiden.
$ 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 memungkinkan Anda membuat perubahan pada elemen Cachet dan menyimpan perubahan tersebut kembali ke instalasi Cachet Anda. Hal ini dilakukan dengan secara langsung mengubah variabel anggota publik elemen Cachet, dan kemudian memanggil metode save()
objek tersebut.
Contoh berikut menunjukkan cara mengubah nama dan status komponen, lalu menyimpan perubahannya.
// Get components
$ components = $ cachetInstance -> getAllComponents ();
// Change component details
$ component [ 0 ]-> name = ' My awesome component ' ;
$ component [ 0 ]-> status = 1 ;
$ component [ 0 ]-> save ();
Jika Anda membuat insiden dengan component_id
, Anda juga dapat menyertakan component_status
untuk mengubah status komponen bersamaan dengan pembuatan insiden. Lihat contoh di bawah ini.
$ 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 );
Saat membuat pembaruan insiden, Anda juga dapat menentukan component_status
untuk mengubah status komponen saat pembaruan insiden dibuat. Lihat contoh di bawah ini.
$ incidentUpdateDetails = [ ' status ' => 2 , ' message ' => ' Test incident update ' . rand ( 1 , 99999 ), ' component_status ' => 2 ];
$ incidentUpdate = $ incident -> createIncidentUpdate ( $ incidentUpdateDetails );
Anda juga dapat mengubah status komponen melalui pembaruan insiden atau insiden dengan mengubah component_status
pada objek terkait dan menyimpannya, seperti yang ditunjukkan pada contoh di bawah ini. Perhatikan bahwa ini hanya akan berfungsi jika insiden tersebut dibuat dengan component_id
terkait.
$ incident -> component_status = 2 ;
$ incident -> save ();
$ incidentUpdate -> component_status = 3 ;
$ incidentUpdate -> save ();
Untuk menghapus elemen Cachet dari instalasi Cachet Anda, Anda hanya perlu memanggil metode delete()
pada objek elemen Cachet yang sesuai.
Misalnya, untuk menghapus suatu insiden, Anda dapat melakukan hal berikut.
// Get incidents
$ incidents = $ cachetInstance -> getAllIncidents ();
// Delete the first one
$ incidents [ 0 ]-> delete ();
Jika Anda menemukan bug atau fitur baru, harap laporkan sebagai masalah GitHub.
Untuk pertanyaan lain, saya tersedia di Twitter (Jordan Hall).