Submit Search
Upload
Eloquent ORMとクエリビルダの違いと初学者向けの選択肢
•
1 like
•
276 views
AI-enhanced title
T
tomo
Follow
やんばるエキスパート PHP勉強会 LT大会で使用した発表資料です。 学習中、違いがよく分からないまま使用してしまっていたので、調べたことをまとめました!
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
VirtualTech Japan Inc./Begi.net Inc.
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
ドメイン駆動設計とマイクロサービス
ドメイン駆動設計とマイクロサービス
kouki_mitsuishi
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Recommended
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
VirtualTech Japan Inc./Begi.net Inc.
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
ドメイン駆動設計とマイクロサービス
ドメイン駆動設計とマイクロサービス
kouki_mitsuishi
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
プレゼン用 きれいでわかりやすいパワーポイントを作る方法
プレゼン用 きれいでわかりやすいパワーポイントを作る方法
Makiko Kunieda
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Takuya Kawabe
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
良いプレゼン 良いスライド
良いプレゼン 良いスライド
京大 マイコンクラブ
こわくない Git
こわくない Git
Kota Saito
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
Masahito Zembutsu
Oss貢献超入門
Oss貢献超入門
Michihito Shigemura
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
Guide To AGPL
Guide To AGPL
Mikiya Okuno
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
Babelfish Compatibility
Babelfish Compatibility
Noriyoshi Shinoda
Visual Studioでテストデータを作ろう
Visual Studioでテストデータを作ろう
Yoshitaka Seo
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
Cake php oops approach for php
Cake php oops approach for php
Deepika Chaudhary
Functional Programming in PHP
Functional Programming in PHP
Aurimas Niekis
More Related Content
What's hot
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
プレゼン用 きれいでわかりやすいパワーポイントを作る方法
プレゼン用 きれいでわかりやすいパワーポイントを作る方法
Makiko Kunieda
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Takuya Kawabe
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
良いプレゼン 良いスライド
良いプレゼン 良いスライド
京大 マイコンクラブ
こわくない Git
こわくない Git
Kota Saito
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
Masahito Zembutsu
Oss貢献超入門
Oss貢献超入門
Michihito Shigemura
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
Guide To AGPL
Guide To AGPL
Mikiya Okuno
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
Babelfish Compatibility
Babelfish Compatibility
Noriyoshi Shinoda
Visual Studioでテストデータを作ろう
Visual Studioでテストデータを作ろう
Yoshitaka Seo
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
What's hot
(20)
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
プレゼン用 きれいでわかりやすいパワーポイントを作る方法
プレゼン用 きれいでわかりやすいパワーポイントを作る方法
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
良いプレゼン 良いスライド
良いプレゼン 良いスライド
こわくない Git
こわくない Git
Pythonによる黒魔術入門
Pythonによる黒魔術入門
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
Oss貢献超入門
Oss貢献超入門
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
Guide To AGPL
Guide To AGPL
Tackling Complexity
Tackling Complexity
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Babelfish Compatibility
Babelfish Compatibility
Visual Studioでテストデータを作ろう
Visual Studioでテストデータを作ろう
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Similar to Eloquent ORMとクエリビルダの違いと初学者向けの選択肢
Cake php oops approach for php
Cake php oops approach for php
Deepika Chaudhary
Functional Programming in PHP
Functional Programming in PHP
Aurimas Niekis
OOPs-Interview-Questions.pdf
OOPs-Interview-Questions.pdf
Samir Paul
Oop's
Oop's
JatinSaini84
Object Oriented Programming in Java _lecture 1
Object Oriented Programming in Java _lecture 1
Mahmoud Alfarra
SLOID Share
SLOID Share
ssuser05c065
oops.pdf
oops.pdf
AnirudhReddy659342
Spring fundamentals
Spring fundamentals
Santosh Gokak
Introduction to functional programming
Introduction to functional programming
Thang Mai
Procedural to oop in php
Procedural to oop in php
Barrett Avery
Laravel Webcon 2015
Laravel Webcon 2015
Tim Bracken
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Shinpei Hayashi
Introduction to Clojure
Introduction to Clojure
Renzo Borgatti
object oriented programming(oops)
object oriented programming(oops)
HANISHTHARWANI21BCE1
CS3391 OOP UT-I T1 OVERVIEW OF OOP
CS3391 OOP UT-I T1 OVERVIEW OF OOP
AALIM MUHAMMED SALEGH COLLEGE OF ENGINEERING
Oop.pptx
Oop.pptx
KalGetachew2
Chapter1_ObjectOrientedProgramming.pptx
Chapter1_ObjectOrientedProgramming.pptx
pamyasstos
Java principles
Java principles
Adel Jaffan
Functional programming
Functional programming
PiumiPerera7
PHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptx
Atikur Rahman
Similar to Eloquent ORMとクエリビルダの違いと初学者向けの選択肢
(20)
Cake php oops approach for php
Cake php oops approach for php
Functional Programming in PHP
Functional Programming in PHP
OOPs-Interview-Questions.pdf
OOPs-Interview-Questions.pdf
Oop's
Oop's
Object Oriented Programming in Java _lecture 1
Object Oriented Programming in Java _lecture 1
SLOID Share
SLOID Share
oops.pdf
oops.pdf
Spring fundamentals
Spring fundamentals
Introduction to functional programming
Introduction to functional programming
Procedural to oop in php
Procedural to oop in php
Laravel Webcon 2015
Laravel Webcon 2015
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Introduction to Clojure
Introduction to Clojure
object oriented programming(oops)
object oriented programming(oops)
CS3391 OOP UT-I T1 OVERVIEW OF OOP
CS3391 OOP UT-I T1 OVERVIEW OF OOP
Oop.pptx
Oop.pptx
Chapter1_ObjectOrientedProgramming.pptx
Chapter1_ObjectOrientedProgramming.pptx
Java principles
Java principles
Functional programming
Functional programming
PHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptx
Recently uploaded
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
959SahilShah
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
VICTOR MAESTRE RAMIREZ
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
jennyeacort
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
KurinjimalarL3
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting .
Satyam Kumar
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
Tagore Institute of Engineering And Technology
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
GDSCAESB
power system scada applications and uses
power system scada applications and uses
DevarapalliHaritha
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
dollysharma2066
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
asadnawaz62
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
RajaP95
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
Tsuyoshi Horigome
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
roselinkalist12
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
João Esperancinha
Past, Present and Future of Generative AI
Past, Present and Future of Generative AI
abhishek36461
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Dr.Costas Sachpazis
Recently uploaded
(20)
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting .
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
power system scada applications and uses
power system scada applications and uses
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Past, Present and Future of Generative AI
Past, Present and Future of Generative AI
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Eloquent ORMとクエリビルダの違いと初学者向けの選択肢
1.
クエリビルダ と Eloquent
の違い やんばるエキスパート PHP勉強会 「 LT大会 」 3期生 とも
2.
自己紹介 名前: とも やんばるエキスパートPHP 3期生 2020年8月∼PHPで学習開始 転職活動中 活動エリア:
東京
3.
・DBクラス ・クエリビルダ ・Modelクラス ( Eloquent
ORM ) Laravel の データベース操作方法
4.
比較するのは ・クエリビルダ ・Modelクラス ( Eloquent
ORM ) どちらも便利なんですが記述が似てて、はじめは違いが分かりにくい💧 しかし、記述が似るのには、理由がありました。
5.
表でざっくり比較 クエリビルダ Eloquent ORM Model
が必要 ⃝ クエリビルダ が使える ⃝ ⃝ SQLインジェクション対策 ⃝ ⃝ テーブルのタイムスタンプ更新 ⃝ リレーションの定義ができる ⃝ 記述量 多め 少なめ ※ Rawメソッド使用時は対策が必要 ※ Rawメソッド使用時は対策が必要 見た目が似る原因はコレ ( でも、良いこと )
6.
所属するクラスが違う ・クエリビルダ IlluminateSupportFacadesDBクラス(ファサード) ・Eloquent ORM IlluminateDatabaseEloquentModelクラス クラス
7.
・SQL文をPHPのメソッドを使う感覚で、簡単に組み立てられるようにしたもの。 ・SQL文を生成するためのメソッドを、メソッドチェーンで記述して、 データベースを操作する。 クエリビルダ とは
8.
・PHPらしい記述方法ながらも、SQLライクに書けるから、 どんなクエリが発行されているのかわかりやすい。 ・そのため SQL 構文の知識がある人は使いやすい。 ・join句を使ってクエリを書けば
Eloquent でサブクエリを使うより速い。 ・バインディング変数使用で、SQLインジェクション対策がされている。 ( Eloquent と 同様 ) クエリビルダ の メリット
9.
・リレーションを正しく把握して、自分でテーブル結合をしなくてはならない。 ・SQL文の理解が必要。 ・上記2点を正しく考慮できていないと、意図しないデータの取得や、 データベースの操作につながる恐れがある。 ・記述量が多くなりがち。 クエリビルダ の デメリット
10.
Eloquent ORM Eloquent は
Laravel で提供されている データベース操作のための機能でORM の一種。 ORMとは 「Object-Relational Mapping」の略で、アプリケーションのModelと データベースのテーブルをマッピングする機能のことをいいます。 マッピングとは オブジェクトとリレーショナルデータベースのレコードを対応付けること。 その恩恵でレコードをオブジェクトとして直感的に扱えるようになる。
11.
ORM では、データベースから取得したレコードはPHPのオブジェクトに変換され、 逆に、データベースに値を渡す際はPHPのオブジェクトをレコードに変換して渡します。 Eloquent ORM
12.
メリット ・アプリケーション( Laravel )の中に別言語であるSQLを混在させずに済む。 ・テーブル同士の関係性を定義できる。 ・データベースのテーブルとレコードをPHPのクラスとインスタンスのように直感的に 扱うことができる。 ・バインド変数を利用して
安全な SQL を作ってくれる。→ SQL インジェクション対策 ・クエリビルダ のすべてのメソッドを使うことができる。 SQL を書かないことにより、アプリケーションとデータベースが疎結合になり、 データベースが何であろうと、アプリケーション側の実装に影響が出ない。 Eloquent ORM
13.
デメリット ・SQLが書けなくてもデータ取得ができるため、SQLの扱いに慣れない。 ・見た目にどのようなクエリが発行されているか分からない。 ・複雑な条件でデータを取得しようとすると記述が大変。 ・メモリの消費が大きい。 Eloquent ORM
14.
初学者向けとしてはどっちがいいの? Eloquent ORM がおすすめ。 理由 ・学びはじめの頃に
SQL に多くの時間を割かなくて良いので、 PHP・Laravel に集中して取り組める。 ・SQL インジェクション対策がされているから、作ったアプリを Web に 上げてイタズラされたときのリスクが低め。 ・リレーションのデータ取得がしやすい。
15.
ご清聴ありがとうございました。
Download now