yeswedev / airtable-php
Manipulate Airtable API using PHP (fork from armetiz)
0.4.4
2021-08-25 15:41 UTC
Requires
- php: >=7.1
- ext-json: *
- beberlei/assert: ~2.1
- kriswallsmith/buzz: ^0.15.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Basic SDK to deal with airtable records. Fork from armetiz
Installation
Tell composer to require this bundle by running:
composer require yeswedev/airtable-php
Usage
$key = "APP_KEY"; // Generated from : https://airtable.com/account $base = "BASE_ID"; // Find it on : https://airtable.com/api $table = "TABLE_NAME"; // Find it on : https://airtable.com/api $airtable = new Airtable($key, $base); $records = $airtable->findRecords($table);
Available methods
- Airtable::createTableManipulator(string $table): TableManipulator
- Airtable::getRecord(string $table, string $id)
- Airtable::createRecord(string $table, array $fields)
- Airtable::setRecord(string $table, array $criteria = [], array $fields)
- Airtable::updateRecord(string $table, array $criteria = [], array $fields)
- Airtable::containsRecord(string $table, array $criteria = [])
- Airtable::flushRecords(string $table)
- Airtable::deleteRecord(string $table, array $criteria = [])
- Airtable::findRecord(string $table, array $criteria = [])
- Airtable::findRecords(string $table, array $criteria = [])
Example
Simple member indexer that encapsulate Airtable within simple API. Can be used to start a CRM on Airtable.
Note: Because Airtable doesn't allow schema manipulation using their public API, you should configure table using the WebUI with the following
- Id : text
- Firstname : text
- Lastname : text
- Email : email
- CreatedAt : Date and time
- Picture : Attachments
$key = "APP_KEY"; // Generated from : https://airtable.com/account $base = "BASE_ID"; // Find it on : https://airtable.com/api $table = "TABLE_NAME"; // Find it on : https://airtable.com/api $airtable = new Airtable($key, $base); $records = $airtable->findRecords($table);
use Armetiz\AirtableSDK\Airtable as AirtableClient; class MemberIndex { private $airtable; public function __construct(AirtableClient $airtableClient, string $table) { $this->airtable = $airtableClient->createTableManipulator($table); } public function clear() { $this->airtable->flushRecords(); } public function save(array $data) { $criteria = ["Id" => $data["id"]]; $fields = [ "Id" => $data["id"], "Firstname" => $data["firstName"], "Lastname" => $data["lastName"], "Email" => $data["email"], "CreatedAt" => (string)$data["createdAt"], ]; if ($this->airtable->containsRecord($criteria)) { $this->airtable->updateRecord($criteria, $fields); } else { $this->airtable->createRecord($fields); } } public function delete($id) { $this->airtable->deleteRecord(["Id" => $id]); } }
Testing
Not implemented yet.
License
This library is under the MIT license. See the complete license.
Credits
Author - Thomas Tourlourat