普段使われているフレームワーク等に、簡単にlaravel4のコンポーネントを組込む事が出来ます。
なかでもおすすめなのはDIコンテナとしても軽量、かつ簡単なilluminate/containerと、
illuminate/databaseです。
今回はdatabaseを実際に使ってみます。
導入方法はいつものcomposer
"require": {
"illuminate/database": "v4.1.*"
}
もれなくcontainerも依存パッケージで入りますので、
是非一緒に使ってみましょう
お使いの環境に合わせてください
require __DIR__ . "/vendor/autoload.php";
use Illuminate\Database\Capsule\Manager as DatabaseManager;
class Database {
protected $db;
//
public function __construct()
{
$this->db = new DatabaseManager;
}
public function connect()
{
$this->db->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
$this->db->setAsGlobal();
return $this->db->connection();
}
}
Eloquentを使いたい場合は、
$this->db->bootEloquent();
を追記するとそのまま使える様になります。
複数接続する場合はconfigなどで指定して、connection()で変更できます。
ベーシックなsql
$this->connect()->select('select * from users where id = ?', array(1));
query builder
$this->connect()->table('users')->where('id', $id)->get();
などなど、簡単に導入して使う事が出来ますので
導入してみてはいかがでしょうか?
cacheが必要であればcacheも入れると使える様になります
さらにcontainerも一緒になっていますので、
containerも組込むことで簡単に入れ替えが可能となります。
class Database {
protected $db;
//
public function __construct(DatabaseManager $db)
{
$this->db = $db;
}
/ etc...
個人的には大掛かりなORMを導入するよりもこれで良いのではと思いますが、
好みで色々選択してみてください。