Laravelは使わずに、ORMとして、Eloquentだけ使う方法を検討してみます
ドキュメント
php5.3〜で使いたかったのでドキュメント的にはこちらを見ます
- 入門的なやつ
http://laravel.com/docs/4.1/eloquent - api document
http://laravel.com/api/4.1/Illuminate/Database.html
ざっと日本語で調べると
http://laravel3.kore1server.com/docs/database/eloquent
こちらのページが出てきたのですが、バージョンが3系なので、
has_one
→hasOne
とかメソッド名が変わっており、
そのままコピペして動かそうとすると動かないので注意です。
composer でインストール
composer require "illuminate/database=~4.1"
※php5.3で使いたかったので、5.3対応している最新バージョン
実際に使うときにどうするか
https://github.com/mapyo/sample/tree/master/php/eloquent-sample
この辺に動くやつを作って入れた
シングルトン
https://github.com/mapyo/sample/blob/master/php/eloquent-sample/Model/Manager.php
シングルトンを使うやつ
https://github.com/mapyo/sample/blob/master/php/eloquent-sample/Model/Eloquent.php
サンプル
https://github.com/mapyo/sample/blob/master/php/eloquent-sample/sample.php
こんな感じで使えるようになりまっす。
<?php use Model\Eloquent; use Model\User; // composerのautoload設定 $loader = require('./vendor/autoload.php'); $loader->add('Model\\', __DIR__); // 初期化処理 Eloquent::init(); $user = User::find(1); var_dump($user->name); $results = Eloquent::getConnection() ->select('select * from my_users'); var_dump($results[0]['name']); $log = Eloquent::getConnection()->getQueryLog(); var_dump($log);
所感
めんどくさくなって雑にまとめたんだけど、ORM便利!!
動くものはこの辺に書いてます https://github.com/mapyo/sample/tree/master/php/eloquent-sample