Edited at

お使いのフレームワークのお供に Illuminate

More than 5 years have passed since last update.

普段使われているフレームワーク等に、簡単に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を導入するよりもこれで良いのではと思いますが、

好みで色々選択してみてください。