Slim2+EloquentORM4で簡単APIスタブ
を作った
composer.json
{ "require": { "slim/slim": "~2.0", "illuminate/database": "~4.0" } }
$ composer install
して準備完了
ファイル構成は以下の様な感じ
- app/
- templates/
- hoge.phtml //view(必要に応じて)
- vendor/ //composer installしたやつ
- composer.json
- composer.lock
- index.php
モデルクラスは殆ど書かなくていいけど
<?php use Illuminate\Database\Eloquent\Model as Eloquent; class Hoge extends Eloquent { protected $table = 'table_name'; }
こんな感じ
index.phpの中で諸々やっちゃう
<?php require 'vendor/autoload.php'; require 'app/models/hoge.php'; use Illuminate\Database\Capsule\Manager as DatabaseManager; $app = new \Slim\Slim(); $app->db = new DatabaseManager; $app->db->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'hoge', 'username' => 'hoge', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $app->db->setAsGlobal(); $app->db->connection(); $app->db->bootEloquent(); $app->get("/", function() use ($app) { $hoge = Hoge::find(1); //一番最後に更新されたレコードだけほしい時は下記のような感じ //$hoge = $app->db->table('table_name')->orderBy('updated_at', 'desc')->take(1)->get(); $app->response->headers->set('Content-Type', 'application/json'); $app->response->setBody(json_encode($hoge)); }); $app->run();
という感じで
Eloquentの方のバージョン指定せずに入れると5が入るんで注意
5だと日本語の資料あんまりなくて調べるの面倒だったのでおとなしく4系を使いました
sinatra + activerecordに比べると面倒だけどpassenger入れるよりは簡単なのでおすすめ