ห้องสมุด Sheetsu PHP มีให้บริการผ่านนักแต่งเพลง
คุณสามารถแก้ไขไฟล์ Composer.json หรือเพียงแค่กดคำสั่งนี้ในเทอร์มินัลของคุณ
composer require emilianozublena/sheetsu-php
คุณต้องทำอินสแตนซ์วัตถุแผ่นหลักและให้แผ่นงานที่คุณสามารถค้นหา URL นี้บนแผงควบคุม Sheetsu อย่าลืมใช้การโหลดอัตโนมัติของนักแต่งเพลง
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId '
]); หากคุณเปิดการรับรองความถูกต้องพื้นฐาน HTTP สำหรับ API ของคุณคุณควรส่ง key และ secret ที่นี่เช่น:
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
]);หากคุณต้องการคุณสามารถปรับเปลี่ยน (หรือเริ่มต้น) ห้องสมุดหลังจากการสร้างใหม่
# Initialize after creation
$ sheetsu = new Sheetsu ();
$ sheetsu -> initialize ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
])ไลบรารี Sheetsu PHP มาพร้อมกับการใช้งานเล็ก ๆ ของประเภทข้อมูลที่เป็นนามธรรมคอลเลกชัน
แบบจำลองเป็นหน่วยของคอลเลกชัน (ในกรณีนี้แต่ละรุ่นแสดงแถวของแผ่นที่กำหนด)
แทนที่จะมอบอาร์เรย์ให้กับไคลเอนต์ Sheetsu (สำหรับการดำเนินการ CRUD) คุณสามารถทำอะไรแบบนี้ได้:
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );คอลเลกชันและโมเดลเป็น 2 วัตถุที่คุณจะได้รับทุกครั้งที่คุณเรียก API ด้วย
ลิงก์ไปยังเอกสาร
หากต้องการเพิ่มข้อมูลลงใน Google สเปรดชีตส่งอาร์เรย์อาร์เรย์อาร์เรย์หรือมากกว่านั้นทำงานกับโมเดลหรือคอลเลกชัน;)
# 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 );หลังจากโทรออกแล้วให้ส่งคืนวัตถุตอบกลับ
ลิงก์ไปยังเอกสาร
อ่านแผ่นงานทั้งหมด
$ response = $ sheetsu -> read ();
$ collection = $ response -> getCollection ();ฟังก์ชั่นการอ่านอนุญาตให้ 2 พารามิเตอร์
limit - จำนวน จำกัด ผลลัพธ์offset - เริ่มจาก n ระเบียนแรก # Get first two rows from sheet starting from the first row
$ response = $ sheetsu -> read ( 2 , 0 );
$ collection = $ response -> getCollection ();ลิงก์ไปยังเอกสาร
หากต้องการรับแถวที่ตรงกับเกณฑ์การค้นหาให้ผ่านอาร์เรย์ด้วยเกณฑ์
# 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 ();ลิงก์ไปยังเอกสาร
ในการอัปเดตแถวชื่อคอลัมน์ส่งผ่านและค่าที่ใช้เพื่อค้นหาแถวและอาร์เรย์หรือโมเดลที่มีข้อมูลเพื่ออัปเดต
# 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 ); โดยค่าเริ่มต้นคำขอแพตช์จะถูกส่งซึ่งกำลังอัปเดตเฉพาะค่าที่อยู่ในคอลเลกชันที่ส่งผ่านไปยังวิธีการ ในการส่งคำขอใส่ผ่านอาร์กิวเมนต์ที่ 4 เป็น true อ่านเพิ่มเติมเกี่ยวกับความแตกต่างระหว่าง Put และ Patch ในเอกสาร Sheetsu
ลิงก์ไปยังเอกสาร
ในการลบแถวชื่อคอลัมน์ผ่านและค่าของมันซึ่งใช้เพื่อค้นหาแถว
# Delete all rows where 'name' equals 'Peter'
$ response = $ sheetsu -> delete ( ' name ' , ' Peter ' );หากคุณต้องการเปลี่ยนแผ่นงานที่คุณกำลังทำอยู่คุณสามารถทำได้โดยใช้ฟังก์ชั่นแผ่นงานและส่งรหัสใหม่
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )นอกจากนี้คุณยังสามารถห่วงโซ่ฟังก์ชั่นนี้กับผู้อื่นได้เช่น:
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )-> read ();หากคุณต้องการใช้สเปรดชีตทั้งหมดเป็นเรื่องง่าย:
# Back to whole spreadsheet
$ sheetsu -> whole ()นอกจากนี้คุณยังสามารถห่วงโซ่ฟังก์ชั่นนี้กับผู้อื่นได้เช่น:
# Back to whole spreadsheet
$ sheetsu -> whole ()-> read ();ไลบรารี Sheetsu PHP จัดการการเชื่อมต่อผ่านคลาสการเชื่อมต่อ คลาสนี้ใช้ curl สำหรับการเชื่อมต่อและใช้คลาสตอบกลับเป็นผลตอบแทน วัตถุการตอบสนองเป็นสิ่งที่รับผิดชอบในการให้คอลเลกชันโมเดลหรือข้อผิดพลาด (หรือการตอบสนองอื่น ๆ จากการโทรครั้งสุดท้าย) การจัดการข้อผิดพลาดนั้นทำผ่านวัตถุตอบสนอง (การตอบสนองใช้คลาส Errorhandler
$ 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 ();ห้องสมุดนี้มีความครอบคลุมรหัส 97% การทดสอบบางอย่างไม่ได้ใช้วัตถุจำลองนี่เป็นรายการที่ต้องทำของเราและหวังว่าเราจะทำเช่นนั้น การทดสอบพร้อมที่จะใช้กับ phpunit และชุดทดสอบได้รับการกำหนดค่าผ่าน XML ดังนั้นคุณจะต้องดำเนินการ phpunit ใน repo รุ่นนี้ของคุณเช่นนี้:
./vendor/bin/phpunit