自分がニフティクラウド mobile backend (NCMB) 用のPHP SDKを開発しているという話は昨年に何回か発表していて、「近いうちに出る」と毎回言ってる、いわば「出る出る詐欺」状態だったわけですね。最初に言ったのが2016年3月30日のPHP勉強会だからほぼ一年前ですか。以下はその時のスライド。
この一年ずっと開発していたわけではさすがになくて、他の優先順位の高い作業がどんどん入って、ちょっと作っては中断を繰り返していました。目標とする機能が全部揃うまでこのままなのも流石にちょっとアレなので、とりあえずできているところまででリリースしちゃうことにしました。
Packagist にも登録したので、以下を composer.json に書くと composer install できます。
"require": {
"koyhoge/php-ncmb": "*"
},
注意点
リリースしておいてなんですが、ニフティは間もなくやってくる4月1日に組織変更される予定でして、NCMBも含むニフティクラウドを提供するのは「富士通クラウドテクノロジーズ」になります。なので「ニフティクラウド mobile backend」という名称や「NCMB」という略称も、そのうちに変更されるかもしれません。もしそうなった場合は、さくっとパッケージ名も変更するつもりですのでご注意下さい。
Parse.com のPHP SDKはすごい
NCMB PHPを作っている途中でParseのPHP SDKを発見しました。AS-ISライセンスでGitHub上で公開されています。
ご存知のように?、NCMBのREST APIはParseのそれとよく似ていて、SDKのPHPコードも参考になる部分が多々ありました。ポインターやリレーションなど面倒な部分をどうやって実装しようかと、漠然と考えていたこともあって、それまでのコードを大幅に改変してParse SDKの設計方針を取り入れました。
使い方はこんな感じ
まだまだ機能は足りないですが、データストアの基本的な部分は動作します。
use Ncmb\NCMB;
use Ncmb\Object;
use Ncmb\Query;
$appkey = 'YOUR APPLICATION KEY';
$clientkey = 'YOUR CLIENT KEY';
// 初期化
NCMB::initialize($appkey, $clientkey);
$className = 'Friends';
// 保存
$friend = new Object($className);
$friend->name = 'サーバルちゃん';
$friend->phrase = 'たーのしー';
$friend->save();
// 読み込み
$query = new Query($className);
$query->equalTo('name', 'サーバルちゃん');
$friends = $query->find();
TODO
これから未対応の部分もどんどん実装していく予定です。
- ポインター
- リレーション
- ロール
- プッシュ通知
- ファイルストア
- スクリプト