開発ブログ

> > > Eloquentをライブラリとして使ってみた(Laravel ORM)

Eloquentをライブラリとして使ってみた(Laravel ORM)

2016-08-31 18:48 - NozawaTakeshi

先日のエントリーではPHPのORマッパーの簡単な比較と、LaravelのORMである”Eloquent”の特徴をまとめてみました。

今日はEloquentのライブラリとしての使用方法についてまとめてみたいと思います。

githubにはLaravelのEloquentを含むデータベース関連のライブラリが公開されています。

The Illuminate Database component is a full database toolkit for PHP, providing an expressive query builder, ActiveRecord style ORM, and schema builder. It currently supports MySQL, Postgres, SQL Server, and SQLite. It also serves as the database layer of the Laravel PHP framework.

翻訳すると、「イルミネートデータベースコンポーネントはクエリビルダー、アクティブレコードのスタイルのORM、スキーマビルダーを提供するデータベースのPHPツールキットです。現在はMySQL、Postgres、SQL Server、SQLiteをサポートしています。このコンポーネントはLaravel PHP フレームワークのデータベースレイヤーとしても機能を提供しています。」とのことです。

“Illuminate”というのはLaravel本体やLaravel関連のコンポーネントを開発しているgithub上の集団と理解してくれれば良いと思います。Eloquentは狭義では”Illuminate/database”コンポーネントの”Active Record Style ORM”にあたります。ただし、Eloquentがクエリビルダーのクラスをカプセル化しているので、プログラマーはEloquentを通して意識することなく、”Illuminate/database”コンポーネントの機能を活用することができます。

またMongoDBにも対応し始めているそうなので、NoSQLな方もお使いいただけるかもしれません。

それではEloquentライブラリのインストール方法と使い方について見ていきたいと思います。

インストール方法

特に明確なインストール方法が書かれているわけではありませんが、composerでインストールできます。
composer.jsonに下記を書き加えてください。

この状態で下記のコマンドを実行してください。

そうするとvendorディレクトリが作成され、必要なライブラリが一式揃っているはずです。
vendor/autoload.phpをrequireしておけば、vendor配下のファイルは必要なときにだけ自動的にrequireされるはずです。

autoloadについてはこのブログでも以前ちょっとだけ触れたことがあります
わからない方は適宜調べてみてください。

使い方

マニュアルの通りなのですが、私は結構苦戦しましたが、githubでEloquentをライブラリとして読み込むためのソースコードが公開されており非常に参考になりました。

こちらでは日本語でも解説をしてくださっております。

もはやこれでいいんじゃね?という感じですが、
ソースコードを紐解いてEloquentの動きを理解しながらなんとかやってみました。

下記は、マニュアルを参考にしたbootstrap.phpファイルです。
“MyLib”というライブラリを開発しているという前提で進めます。

さらにDatabase/ConnectionManager.phpでは

こうしておけば、クライアント側では下記のようにDB接続設定の配列をしてから
ファイルを読み込めば作成したモデルを使うことができます。

次回は今回の設定・ソースコードをもとに、実際にEloquentをつかってモデルを書いていきたいと思います。
宜しくお願い致します。

※ なお、弊社ではエンジニアの採用を行っております。興味のある方はぜひご連絡ください。
いきなり面接、というわけではなく「少しだけお話聞きたいです・・・。」という方もお気軽にどうぞ!