きまブログ

2022-12から再開しました。

自動コード生成のための補習 - Scaffold(Model)編

手書きからコード自動生成へ - Scaffold(Model)編

Scaffoldにより自動生成された、
/fuel/app/classes/model/testscaffold.php を解析していきます。


まず「名前空間」。超重要です。
※ これは、FuelPHPの機能ではなく、PHPそのものの機能です。


コードの先頭で、

use Orm\Model

としているため、この時、継承している「Model」は、
あの空っぽのModel(/fuel/core/classes/model.php)ではなくて、
/fuel/package/orm/classes/model.php です。
これは、あとで、delete()メソッドが使えることからもわかります。


その後、クラス定義の前半は、
自動コード生成のための補習 - Model編 - きまブログ
での解析内容と同じ。
データベースのカラム名の登録と、
「オブザーバー」パターンの、オブザーバーの登録です。

Validateメソッド

Validation::forge()メソッド

引数の$factoryには、フィールドセットが入り、
今回の場合、create か edit が入ります。
Validationのインスタンスを生成します。

Validation->add_field()メソッド

バリデーションの対象となるフィールドを追加します。
その際、バリデーションの基準。例えば、空白禁止や文字数宣言などの
バリデーションルールを設定します。


バリデーションルールの一覧はコチラ。
Validation - クラス - FuelPHP ドキュメント

Validation->run()メソッド

設定したバリデーションを実行します。

delete()メソッド

引数$idのキーを持つレコードを削除します。


これで、ザックリではありますが、
FuelPHPのScaffoldで自動生成されたコードをひと通り見た感じです。