こんちには、フリーのITエンジニアでWeb(PHP:Laravel)のバッグエンドをメインにフルリモートでお仕事させて頂きながら、個人開発でiOSアプリを作っているMoritaです。
CakePHPのBakeは使用したことがあったのですが、scaffoldとの違いがわからなかったので調べてみました。
Bakeとは
まずはBakeがどのようなものかおさらいしておきます。
Bakeはコマンドプロンプトやターミナルを使用して、コマンド操作でデータベースのテーブルに合わせてModel、Controller、Templateの雛形を自動生成してくれる機能です。
Controllerならindex、edit、deleteなどのアクションが実装された状態でファイルが作成されます。
簡易的な実装なので、実際にサービスを作る際には実装を追加する必要があると思いますが、それでも位置から作成するようりも手間を省くことができます。
さらに便利なのが、Bakeコマンドを入力する際に、ファイルをすべて作成するか、一部のファイルのみを作成するかを指定することができます。
Scaffoldとは
次にscaffoldですが、自分ではまだ試したことがないですが、Controllerにテーブル名とscaffoldを宣言すればCakePHPのlib内にあるテンプレートファイルを使用してテーブルに対しての簡単な参照・書込ができる画面と機能を提供してくれる機能のようです。
public $name = 'TestTable';
public $scaffold;
Bakeとの大きな違いはファイルを実際に生成しないところです。
Scaffoldで使用しているviewファイル自体はlib>Cake>View>Scaffoldsの中にあります。
viweを修正したい場合はファイルをプロジェクトにコピーしてオーバーライドで上書きをして使用します。
(CakePHP3ではscaffoldは削除されたようです。変わりのスキャフォールディングプラグインが公開されています。 )
まとめ
Bakeはコマンドによって必要なファイルを、簡易的な実装がされた状態で実際に生成するもの。
ScaffoldはControllerに最低限の設定をすれば、必要なファイルはCakePHPのライブラリから使用する。
ただし、CakePHP3ではScaffoldは削除されているため、それに変わるものを使用する場合はスキャフォールディングプラグインを使用することになります。
コメント
参照リンクがwpログインのURLとなっているのでご報告です。
大変有益な記事でした。ありがとうございました。