2017 © Pedro Peláez
 

library colrow-php-sdk

image

rashiku/colrow-php-sdk

  • Saturday, August 27, 2016
  • by rashikucorp
  • Repository
  • 2 Watchers
  • 0 Stars
  • 11 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

COLROW PHP SDK

COLROW PHP SDK は、PHP 環境にて COLROW API を利用するための SDK です。, (*1)

インストール方法

Composer を使います。まずはプロジェクトのルートディレクトリにて、以下の composer.json を作成し、php composer.phar install を実行してください。, (*2)

{
    "require": {
        "rashiku/colrow-php-sdk" : "1.0.*"
    }
}

以下のように記述することで COLROW PHP SDK が利用できるようになります。, (*3)

require_once 'vendor/autoload.php';

何らかの事情で Composer が使えない場合は、ファイル一式をダウンロードし、Colrow フォルダをそのままお使いください。上記の autoload.php の代わりに以下のように記述し、必要なファイル群を読み込んでください。, (*4)

require_once 'Colrow/ColrowClient.php';
require_once 'Colrow/ColrowObject.php';
require_once 'Colrow/ColrowQuery.php';
require_once 'Colrow/ColrowDrive.php';
require_once 'Colrow/ColrowException.php';

※PHP のバージョンは 5.4 以上である必要があります。, (*5)

初期化

SDK から必要なファイルを読み込んだ後、ColrowClient を初期化する必要があります(ColrowDrive だけは例外)。, (*6)

ColrowClient::initialize(
    'your_account',
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'シート1'
);

3つの引数はそれぞれ「COLROW に登録した Google アカウント」「スプレッドシートの key」「ワークシート名」になります。, (*7)

基本的な使い方

利用する機能に応じたクラスを use 文にて宣言します。大抵のケースでは、以下の3つのクラス(のうちいずれか)を宣言することになるでしょう。, (*8)

use Colrow\ColrowClient;
use Colrow\ColrowQuery;
use Colrow\ColrowObject;

オブジェクトとして全件取得:, (*9)

$query = new ColrowQuery();

$objects = $query->find();

最初の1件を取得:, (*10)

$query = new ColrowQuery();

$object = $query->first();

クエリ(後述)を指定して取得:, (*11)

$query = new ColrowQuery();
$query->equalTo('会社名', 'らしく');
$query->orderBy('日付');
$query->reverse(true);

$objects = $query->find();

件数をカウント:, (*12)

$query = new ColrowQuery();

echo $query->count();

シートに新しい行を追加:, (*13)

$row = new ColrowObject();

$row->set('会社名', 'らしく販売');
$row->set('担当者', '鈴木一郎');
$row->set('日付', '2016/1/1');

$row->save();

行の内容を更新:, (*14)

$query = new ColrowQuery();

$objects = $query->find();
$row = $objects[10];

$row->set('担当者', '田中太郎');

$row->save();

行を削除:, (*15)

$query = new ColrowQuery();

$objects = $query->find();
$row = end($objects);

$row->destroy();

COLROW オブジェクト

ColrowQuery クラス経由で取得したオブジェクトは、get メソッドによって内容を参照できます。, (*16)

foreach ($objects as $object) {
    echo $object->get('会社名') . "\n";
}

その他にも、以下のメソッドが利用可能です。, (*17)

  • set(label, value) ... オブジェクトの label(列のラベル名)に value をセット
  • save() ... オブジェクトを保存。シートの該当行の内容も更新(新規作成した場合は最終行に追加)
  • destroy() ... オブジェクトを削除。シートの該当行も削除
  • getId() ... オブジェクトの ID(=該当行に割り当てられた固有の ID)を参照
  • toJson() ... JSON 文字列に変換(デバッグ用)

クエリ

シートの内容を抽出するため、ColrowQuery クラスのインスタンスに対して、SQL の where 句に相当する以下のメソッドが用意されています。, (*18)

  • equalTo(label, value) ... label の値が value に等しい
  • notEqualTo(label, value) ... label の値が value に等しくない
  • lessThan(label, value) ... label の値が value より小さい
  • greaterThan(label, value) ... label の値が value より大きい
  • lessThanOrEqualTo(label, value) ... label の値が value より小さいか等しい
  • greaterThanOrEqualTo(label, value) ... label の値が value より大きいか等しい
  • exists(label) ... label の値が空ではない
  • doesNotExist(label) ... label の値が空である

上記の条件を複数列記することで AND として扱われます。, (*19)

$query->equalTo('カテゴリ', 'A');
$query->notEqualTo('状態', '休業中');
$query->lessThanOrEqual('優先度', 5);

OR の場合は ColrowQuery のインスタンスを個別に作成し、orQuery メソッドを使います。, (*20)

$query1 = new ColrowQuery();
$query1->equalTo('会社名', 'らしく');
$query2 = new ColrowQuery();
$query2->equalTo('会社名', 'らしく販売');

$query = new ColrowQuery();
$query->orQuery($query1, $query2);

$objects = $query->find();

その他にも以下のメソッドが利用可能です。, (*21)

  • orderBy(label) ... label の値でソート(デフォルトは昇順)
  • reverse(boolean) ... true を指定することでソートを降順に変更
  • offset(number) ... 指定した列数をスキップ
  • limit(number) ... 取得する列数を指定

ColrowDrive について

Google ドライブにファイルをアップロードするために用意された ColrowDrive クラスは、前述した他のクラスとはやや使用感が異なります。, (*22)

use Colrow\ColrowDrive;

if (isset($_FILES['image'])) {
    $file = $_FILES['image'];

    $fp = fopen($file['tmp_name'], 'r');
    $file_body = base64_encode(fread($fp, filesize($file['tmp_name'])));
    fclose($fp);

    $parent_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    $response = ColrowDrive::upload('your_account', $file['name'], $file['type'], $file_body, $parent_id);

    echo json_encode($response);
} else {
    echo '

'; echo ''; echo ''; echo '
'; }

$parent_id はファイルのアップロード先、つまり Google ドライブのフォルダの ID になります。そのフォルダのページの URL の https://drive.google.com/drive/u/0/folders/ 以降に書かれているのがそれです。また、ColrowDrive::upload() の第1引数には、COLROW に登録した Google アカウントを指定してください。, (*23)

The Versions

27/08 2016

dev-master

9999999-dev

  Sources   Download

06/02 2016

1.0.0

1.0.0.0

  Sources   Download