Perpustakaan Sheetsu PHP tersedia melalui komposer.
Anda dapat mengedit file composer.json Anda atau cukup tekan perintah ini di terminal Anda
composer require emilianozublena/sheetsu-php
Anda perlu membuat instantiate objek Sheetsu utama dan memberikan SheetID Anda dapat menemukan URL ini di dasbor Sheetsu. Ingatlah untuk menggunakan autoload komposer.
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId '
]); Jika Anda memiliki otentikasi dasar HTTP dihidupkan untuk API Anda, Anda harus lulus key dan secret di sini, seperti:
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
]);Jika perlu, Anda dapat mengulangi (atau menginisialisasi) perpustakaan setelah pembuatan
# Initialize after creation
$ sheetsu = new Sheetsu ();
$ sheetsu -> initialize ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
])Perpustakaan Sheetsu PHP hadir dengan implementasi kecil tipe data abstrak koleksi.
Model adalah unit koleksi (dalam hal ini, setiap model mewakili baris lembar yang diberikan).
Alih -alih memberikan array kepada klien Sheetsu (untuk operasi CRUD), Anda dapat melakukan sesuatu seperti ini:
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );Koleksi dan model adalah 2 objek yang akan Anda dapatkan setiap kali Anda memanggil API juga.
Tautan ke dokumen
Untuk menambahkan data ke spreadsheet Google, kirim array, array array, atau lebih sederhana, bekerja dengan model atau koleksi;)
# Adds single row from array
$ sheetsu -> create ([ ' name ' => ' John ' ]);
# Adds multiple rows from array
$ sheetsu -> create ([
[ ' name ' => ' John ' ],
[ ' name ' => ' Steve ' ]
]);
# Adds single row from Model
$ sheetsu -> create (Model:: create ([ ' name ' => ' John ' ]));
# Adds multiple rows from Collection
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );Setelah panggilan dilakukan, kembalikan objek respons.
Tautan ke dokumen
Baca seluruh lembar
$ response = $ sheetsu -> read ();
$ collection = $ response -> getCollection ();Baca fungsi memungkinkan 2 parameter
limit - batas jumlah hasiloffset - Mulai dari N Rekor Pertama # Get first two rows from sheet starting from the first row
$ response = $ sheetsu -> read ( 2 , 0 );
$ collection = $ response -> getCollection ();Tautan ke dokumen
Untuk mendapatkan baris yang sesuai dengan kriteria pencarian, lulus array dengan kriteria
# Get all rows where column 'id' is 'foo' and column 'value' is 'bar'
$ response = $ sheetsu -> search ([
' id ' => ' foo ' ,
' value ' => ' bar '
]);
$ collection = $ response -> getCollection ();
# Get all rows where column 'First name' is 'Peter' and column 'Score' is '42'
$ response = $ sheetsu -> search ([
' First name ' => ' Peter ' ,
' Score ' => ' 42 '
]);
$ collection = $ response -> getCollection ();
# Get first two row where column 'First name' is 'Peter',
# column 'Score' is '42' from sheet named "Sheet3"
$ response = $ sheetsu -> search ([
' First name ' => ' Peter ' ,
' Score ' => ' 42 '
], 2 , 0 );
$ collection = $ response -> getCollection ();
# Get first two row where column 'First name' is 'Peter',
# column 'Score' is '42' from sheet named "Sheet3"
# with ignore case
$ response = $ sheetsu -> search ([
' First name ' => ' Peter ' ,
' Score ' => ' 42 '
], 2 , 0 , true );
$ collection = $ response -> getCollection ();Tautan ke dokumen
Untuk memperbarui baris, lulus nama kolom dan nilainya yang digunakan untuk menemukan baris dan array atau model dengan data yang akan diperbarui.
# Update all columns where 'name' is 'Peter' to have 'score' = 99 and 'last name' = 'Griffin'
$ model = Model:: create ([ ' score ' => ' 99 ' , ' last name ' => ' Griffin ' ]);
$ response = $ sheetsu -> update ( ' name ' , ' Peter ' , $ model ); Secara default, permintaan patch dikirim, yang hanya memperbarui nilai yang ada dalam koleksi yang diteruskan ke metode. Untuk mengirim permintaan put, lulus argumen ke -4 menjadi true . Baca lebih lanjut tentang perbedaan antara put dan patch di dokumen Sheetsu.
Tautan ke dokumen
Untuk menghapus baris, lulus nama kolom dan nilainya yang digunakan untuk menemukan baris.
# Delete all rows where 'name' equals 'Peter'
$ response = $ sheetsu -> delete ( ' name ' , ' Peter ' );Jika Anda perlu mengubah lembar yang sedang Anda kerjakan, Anda dapat melakukannya dengan menggunakan fungsi lembar dan melewati ID Sheetsu baru
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )Anda juga dapat rantai fungsi ini dengan orang lain, seperti demikian:
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )-> read ();Jika Anda perlu menggunakan seluruh spreadsheet itu mudah:
# Back to whole spreadsheet
$ sheetsu -> whole ()Anda juga dapat rantai fungsi ini dengan orang lain, seperti demikian:
# Back to whole spreadsheet
$ sheetsu -> whole ()-> read ();Perpustakaan Sheetsu PHP menangani koneksi melalui kelas koneksi. Kelas ini menggunakan Curl untuk membuat koneksi dan menggunakan kelas respons sebagai pengembalian. Objek respons adalah yang bertanggung jawab untuk memberikan koleksi, model, atau kesalahan (atau respons lainnya dari panggilan terakhir) Penanganan kesalahan juga dilakukan melalui objek respons (respons menggunakan kelas ErrorHandler untuk mengabstraksi blok coba/tangkap dan digabungkan dengan ketat ke kelas PHP errorexception)
$ response = $ sheetsu -> read ();
#if you need only the error messages, you can get the errors like this
$ errors = $ response -> getErrors ();
$ firstError = $ response -> getError ();
#if you need to get the exceptions thrown, do it like this.
$ exceptions = $ response -> getExceptions ();
$ firstException = $ response -> getException ();Perpustakaan ini memiliki di atas 97% cakupan kode. Beberapa tes tidak menggunakan objek tiruan, ini ada dalam daftar tugas kami dan berharap kami akan melakukannya. Tes disiapkan untuk digunakan dengan phPunit dan suite tes dikonfigurasi melalui XML, jadi Anda hanya perlu menjalankan phpunit dalam versi forked Anda dari repo ini seperti:
./vendor/bin/phpunit