Download the PHP package taro/db-model without Composer
On this page you can find all versions of the php package taro/db-model. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download taro/db-model
More information about taro/db-model
Files in taro/db-model
Informations about the package db-model
DB Model
PHPでリレーショナルデータベースを操作するための O/Rマッパーです。以前作成した php-ormapper の改良版です。 このライブラリを使って、データベース/テーブルの作成・更新やレコードの作成・更新・取得などが可能です。
使い方
モデルクラス
\Taro\DBModel\Models\Model クラスを継承します
リレーションの定義
モデルクラス内に、リレーションメソッドを定義します。 以下の関係を定義できます。
- 1対1:hasOne(関係先のモデルクラス);
- 1対多:hasMany(関係先のモデルクラス);
- 多対1:belongsTo(関係先のモデルクラス);
- 多対多:manyToMany(関係先のモデルクラス, 中間テーブル名);
- 中間モデルを介した1対多:hasManyThrough(関係先のモデルクラス, 中間モデルクラス);
- 中間モデルを介した多対1:belongsToThrough(関係先のモデルクラス, 中間モデルクラス);
レコードの新規作成
方法1:インスタンスを作成し、プロパティに値を代入して保存します
方法2:fillメソッドに、配列を渡して一括保存します
レコードの更新
方法1:インスタンスのプロパティに更新データを代入します。
方法2:インスタンスのfillメソッドに、更新データを配列で渡して更新します。
レコードの削除
クエリビルダとクエリの実行
モデルクラスの query を起点にクエリを作成していきます。
クエリビルダの作成
必要なメソッドをメソッドチェーンで繋いでいきます。
クエリの実行
クエリビルダを作成した後、あるいは単独で実行できるメソッド。
複雑な WHERE 句の作成
Wh クラスを使って、Where句を作成できます。作成後にクエリビルダのaddWhClauseメソッドで、クエリに追加します。
入れ子の構造を作成するには、Whの static なメソッドを使います。
モデルのリスト用クラス
クエリビルダで getAll・getArrayAll 実行後の結果は、ActiveList を実装したクラスのオブジェクトとして返されます。AcitveList は ArrayList, ObjectList のインターフェースです。配列として扱えるうえ、リストを操作する便利なメソッドを提供します。
- ArrayList: 配列データが対象
- ObjectList: モデルオブジェクトのリストが対象
上記インターフェースが提供するメソッド
ページネーション
レコードを指定した数のモデルを取得、戻り値は Paginator クラスになります。
リンクデータの取得
タグではなく、データのみ必要な場合は、 getLinkData メソッドを使います。
リンクのデザインのカスタマイズ
デフォルトでは、bootstrapデザインのリンクが表示されます(要Bootstrapライブラリ)。
カスタマイズしたい場合は、BasicLinks クラスを拡張したクラスを作成し、Paginator::setTemplate() の引数に渡してください。
モデルクラスを使わないクエリ実行方法
DirectSql クラス
DirectSql を使えば、モデルクラスを介さずクエリを作成・実行したり、直接SQL文を実行できます。
リレーション先のモデルの取得
中間テーブルレコードの作成
多対多のリレーションで、中間テーブルにレコードを作成します。
-
多対多のリレーションを定義
- insertPivot メソッドを使って、レコードを作成
レコードの更新
updatePivot メソッドを使って、レコードを更新
レコードの削除
deletePivot メソッドを使って、レコードを削除
DB接続設定ファイル
プロジェクトルート/config/database.php ファイル内にデータベース接続情報を登録します。 .env ファイルに記載した情報を使う場合は、 env() メソッドを使います。
データベースへ接続
モデルクラスを使う前に、DB::startメソッドでDBへ接続します。
トランザクション制御
DBクラスを使って、トランザクションをコントロールします。
DDL関連
データベースの管理
データベースの作成や削除を実行します。(Sqlite は対象外)
テーブルの作成
Schema::createTable を使い、テーブルを作成します。引数のコールバックのタイプヒンティングにはデータベースに応じて、MySqlTable/PostgreSqlTable/SqliteTable を指定してください。
テーブルの更新
テーブルを更新するには、まず対象となるテーブルをSchema::getTableで取得し、変更内容を記述後にSchema::alterTableを実行します。
テーブルの削除
テーブルを削除するには、Schema::dropTableIfExistsを実行します。また、取得したテーブルを削除(Schema::dropTable)することもできます。
テーブルの一元管理
Schema::saveTableを使うことで、上記のテーブルの作成・更新・削除を自動で実行することもできます。コールバック内のコードを変更して実行することで、既存の同名テーブルとの差分クエリを作成してテーブルを更新します。
ライセンス (License)
DB ModelはMIT licenseのもとで公開されています。
DB Model is open-source software licensed under the MIT license.