タグ

ORMに関するsatoshieのブックマーク (8)

  • 素のPHPでEloquentを使う(illuminate/databaseパッケージの単体利用) | akamist blog

    PHPのフレームワークであるLaravelでは、DBアクセスを行うのにEloquentやQueryBuilderという便利なモジュールがあります。 ですが、プロジェクトによってはLaravel以外のマイクロフレームワークや、フレームワークなしの環境だけども、ORマッパーのEloquentだけは使いという状況もあります。 そこで今回は、Laravelフレームワークを使わずに、Eloquentを利用する方法を説明します。 LaravelとEloquentの関係 EloquentはLaravel向けののORマッパーライブラリとして有名ですが、Eloquent自体はLaravelと一緒に使わなくても、composerのilluminate/databaseという独立したパッケージとして提供されています。 ですので、illuminate/databaseパッケージだけを個別で取得すれば、Larave

    素のPHPでEloquentを使う(illuminate/databaseパッケージの単体利用) | akamist blog
  • LaravelのORM「Eloquent」を単体で使ってスクラッチ開発する | テクナレジ

    【第4回】Composerを使ってお手軽アプリケーション開発 連載ではComposerで公開されているパッケージの中から、フレームワークを問わず汎用的に使えるライブラリをサンプルコードと共に紹介します。 今回はDBを扱う「Eloquent(Illuminate/Database)」というORMを紹介します。 ORMとEloquent ORMとは? ORMは「Object Relational Mapping (オブジェクト関係マッピング)」と呼ばれている、オプジェクト指向で書かれているプログラムから、オブジェクト指向ではないデータベースなどのデータをオプジェクト指向のように扱う手法のことを言います。 かみ砕いて説明すると、データベースをオブジェクト指向っぽく扱うためのクラス構造ということです。 例えば、 SELECT 'id', 'name', 'age' FROM users WHER

    LaravelのORM「Eloquent」を単体で使ってスクラッチ開発する | テクナレジ
  • C#のORM(オブジェクト関係マッピング)における理想形を考えてみる - Qiita

    はじめに C#のORマッパーといえばEntity Framework(以下、EF)が有名で、データベースの接続を調べると真っ先にEFの名前が出てきます。ORMの機能を充分に備えたライブラリはEFしかありませんが、致命的な欠点があります。欠点については後述しますが、これを解決するには他のライブラリを使うほかありません。記事では、EFを使わずにORマッパーの機能を使うライブラリとその組み合わせを紹介します。 ORMの基的な機能 紹介する前にまずはORMで必要な機能を確認します。ORM(Object-relational mapping)は、オブジェクト関係マッピングと呼ばれ、オブジェクト思考とRDB間の非互換であるデータの違いをうまく吸収(これの逆をインピーダンスミスマッチと言います)して、簡単にデータを扱えるようにする技法です。基的な機能は以下があります。 SQLを意識することなくコー

    C#のORM(オブジェクト関係マッピング)における理想形を考えてみる - Qiita
  • 【C#】Dapperについてまとめてみた - Sweets Junkie

    C#で使える軽量なORマッパー「Dapper」についてのナレッジが貯まってきたのでまとめてみます。 #1 Dapperとは C#で書かれた軽量なORマッパー。 ただし、クエリ生成やソース自動生成などの機能は備えていない。 その代り高速。ORマッパーを嫌う人は速度面を指摘するけど、気になることはないと思う。 とにかく多機能なORマッパーを使いたい人はEntityFramework使ってどうぞ。 #2 導入方法 NuGetから「Dapper」検索GO!! #3 使い方 ①単一テーブルをSelectしてみる。 対象のテーブルは以下。 テーブル名:Users カラム:UserName、AgeDapperを使用してDBの取得結果をオブジェクトにマップするにはマップ先となるクラスを用意する必要がある。 基的にはカラム名=変数名とする。大文字小文字は区別しない。 カラム名=変数名とならない場合はマッピ

    【C#】Dapperについてまとめてみた - Sweets Junkie
  • Laravel5で「.. or ...) and (..」みたいな複雑な条件を書く - Qiita

    SELECT * FROM tbl_data WHERE (column_a = 'hoge' or column_a= 'piyo') AND (column_b= 'foo' or column_b= 'bar'); $query = TblDatum::where(function($query){ $query->orWhere('column_a', '=', 'hoge') ->orWhere('column_a', '=', 'piyo'); })->where(function($query){ $query->orWhere('column_b', '=', 'foo') ->orWhere('column_b', '=', 'bar'); }); $query = TblDatum::where(function($query) use ($hoge, $piyo) {

    Laravel5で「.. or ...) and (..」みたいな複雑な条件を書く - Qiita
  • [Laravel]Eloquent ORMで複合主キーはオススメしない - atuweb 開発ブログ

    Laravel はWeb職人好みの使いやすいフレームワークです。 Laravelが初期装備している Eloquent ORM はコレクション機能と親和性が高く、組み合わせて利用するメリットは大きいのですが、苦手なものも当然もあります。 そのひとつが「 主キーの変更が苦手 」という点です。 Eloquentで開発した結果、 主キーは変更せず規約に従うのがベター という結論に至りましたので、主キー周りについて私が理解したことをまとめます。 環境は以下の通りです。 PHP 7 Laravel 5.3 Eloquent ORMの主キー規約 Eloquent ORMでは次のように主キーに対する規約を設けております。 符号なしINT (unsigned int) フィールド名はid オートインクリメント この規約に従う場合に限り、とてもシンプルにコードを書くことができます。 スキーマビルダー 規約に従

    [Laravel]Eloquent ORMで複合主キーはオススメしない - atuweb 開発ブログ
  • もっとORMを使えるようになりたいので、見直してみた - Qiita

    皆さんこんにちは 最近Laravel触っててEloquentめっちゃ使いやすいやん!とか、composerも名前空間もないけど、Active Recordの仕組みが良くできているYii Framework1.1 をベースにしておきながら、Active Recordをガン無視する暴挙に出た生ゴミに出会ったりとかしました。 そんな感じで、新旧のいいものとそれを使いこなせずに醜悪なゴミにしている事例を間近に見ているので、イライラを原動力にORMって何がいいんだっけってところを見直してみようかと思います。 オブジェクト関係マッピング (ORM: Object-relational mapping) 原語も訳語も違和感しかないのですが、ここで言う「関係」とは、別にモノ同士のつながりとかではなく、単純に「リレーショナルデータベース」のことを指しているようです。 Wikipediaにある説明は案の定よく

    もっとORMを使えるようになりたいので、見直してみた - Qiita
  • ORMは不快なアンチパターン | To Be Decided

    このエントリでは、Yegor Bugayenkoによる記事、ORM Is an Offensive Anti-Patternを紹介する。 (Yegorから和訳と転載の許可は得た。) 以下はその全文の和訳だが、意訳超訳が混じっているので、もとのニュアンスを知りたければ元記事を読んでもいいし、読まなくてもいい。 結論から言えば、ORMはオブジェクト指向プログラミングの原則の全てに違反するひどいアンチパターンだ。オブジェクトをバラバラに引き裂き、もの言わぬ受身なデータ入れに変えてしまう。 小さいWebアプリケーションから、数千のテーブルをCRUD操作するエンタープライズシステムまで、どんなアプリケーションにもORMが存在することはゆるせない。 代わりになるものは? SQLを話すオブジェクトだ。 ORMの仕組み オブジェクト関係マッピング (Object-relatinal mapping、ORM

  • 1