本ライブラリは さくらのクラウド 上のリソースを操作するための簡単なインタフェースを提供します。
- PHP 5.4+
- Composer
cd YOUR/PROJECT/ROOT
# Composerをインストール(まだの場合)
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# composer.json を作成
# (FuelPHPのようなフレームワークを使用する場合は既存の同ファイルを編集してください)
cat > composer.json << EOT
{
"repositories": [
{
"type": "git",
"url": "[email protected]:sakura-internet/saklient.php.git"
}
],
"require": {
"sakura-internet/saklient": "dev-master"
}
}
EOT
# パッケージをインストール
composer install
# あなたのコードを編集
vi YOUR-CODE.php
<?php
require_once 'vendor/autoload.php';
$api = \Saklient\Cloud\API::authorize(YOUR_API_TOKEN, YOUR_API_SECRET, ZONE);
// ZONE: "is1a" (石狩第1ゾーン), "is1b" (石狩第2ゾーン), "tk1v" (Sandbox)
// テスト用途には "tk1v" が推奨されます
// ...
$api->server->find() のようないくつかのメソッドは配列を返します。 この配列はPHP標準の array の代わりに ArrayObject を使用しています。
このため、array_shift() のようなPHP標準の配列APIの引数に、(このライブラリのあらゆるメソッドから返される)この配列を渡す場合、 事前にArrayObjectから標準のarrayにキャストしなければなりません。
なお、ArrayObjectは配列ではなくオブジェクトですので、 代入時や引数として渡す際にコピーされないことにご注意ください。 同様に、真偽値にキャストされた空のArrayObjectは、falseとして評価されません。
<?php
$servers = $api->server->find();
// これは正しく動作しません
while ($server = array_shift($servers)) {
//...
// アクセサについても同様です
while ($tag = array_shift($server->tags)) {
//...
}
}
// これは正しく動作します
$servers_array = (array)$servers;
while ($server = array_shift($servers_array)) {
//...
$tags_array = (array)$server->tags;
while ($tag = array_shift($tags_array)) {
//...
}
}
// これも正しく動作します(ArrayObjectにはIteratorAggregateが実装されています)
foreach ($servers as $server) {
//...
foreach ($server->tags as $tag) {
//...
}
}
// これも正しく動作します(ArrayObjectにはArrayAccessとCountableが実装されています)
for ($i=0; $i < count($servers); $i++) {
$server = $servers[$i];
//...
for ($j=0; $j < count($server->tags); $j++) {
$tag = $server->tags[$j];
//...
}
}
サンプルコードは こちら で入手できます。
Copyright (C) 2014 SAKURA Internet, Inc.
このライブラリは MIT license に基づき、自由に再配布できます。