ryunosuke / dbml
Database Manipulation Layer
v3.1.0
2025-01-10 09:04 UTC
Requires
- php: >=8.0
- doctrine/dbal: 3.*|4.*
- psr/simple-cache: 2.*|3.*
- ryunosuke/utility-attribute: 1.*
Requires (Dev)
- dev-master
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.22
- v2.1.21
- v2.1.20
- v2.1.19
- v2.1.18
- v2.1.17
- v2.1.16
- v2.1.15
- v2.1.14
- v2.1.13
- v2.1.12
- v2.1.11
- v2.1.10
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.22
- v2.0.21
- v2.0.20
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2025-01-10 09:26:53 UTC
README
Description
Doctrine/dbal を使用して CRUD 操作に特化したライブラリです。
対応(テスト済み)RDBMS
- sqlite 3.8
- MySQL 8.0.23
- PostgreSQL 16.3
- SQLServer 2022
ドキュメントは下記においてあります。
Install
{ "require": { "ryunosuke/dbml": "dev-master" } }
Usage
$db = new \ryunosuke\dbml\Database([ 'driver' => 'pdo_mysql', 'host' => '127.0.0.1', 'port' => '3306', 'dbname' => 'dbname', 'user' => 'user', 'password' => 'password', 'charset' => 'utf8', ], [ /* オプション配列 */ ]);
要するに設定情報(\Doctrine\DBAL\DriverManager に渡す配列)をコンストラクタ引数に渡します。 原則としてこの Database インスタンスのみ使用し、他のクラスは直接的には使用しません。 上記のように $db インスタンスを作成してあとはこの $db を使用してデータベースアクセスします。
往々にしてクエリビルダを使用するかゲートウェイを使用することが多いです。 基本的な CRUD のコードを以下に記します。
// t_article のレコードを全件取得 $db->selectArray('t_article'); // クエリビルダ版 $db->t_article->array(); // ゲートウェイ版 // t_article にレコードを追加する $db->insert('t_article', [ 'article_title' => 'title', 'content' => 'content', ]); $db->t_article->insert([ 'article_title' => 'title', 'content' => 'content', ]); // t_article のレコードを更新する $db->update('t_article', [ 'article_title' => 'title2', 'content' => 'content2', ], [ 'article_id' => 1, ]); $db->t_article->update([ 'article_title' => 'title2', 'content' => 'content2', ], [ 'article_id' => 1, ]); // t_article のレコードを削除する $db->delete('t_article', [ 'article_id' => 1, ]); $db->t_article->delete([ 'article_id' => 1, ]);
実際は JOIN ができたり下位テーブルを階層で取得できたり、 WHERE に条件が埋め込めたりしますが、そのような細かい使い方はクラスリファレンスを参照。
License
MIT