今年の干支は寅ですか、いいですね

新年の挨拶をするには随分と日が経ってしまいましたが、あけましておめでとうございます。今年もよろしくお願いします。
今年の抱負といいますか、頑張るぞを軽くしたためておきます。
現時点での今年の目標は資格試験(技術系2つ趣味1つ)の合格、社内ダイエット大会(達成目標は体重-4kg,体脂肪率-5%)で優勝して推しのボイスを手に入れること、スケボーでオーリー(https://www.nollieskateboarding.com/ollie/)できるようになること、ピアノ演奏で課題曲(https://youtu.be/4H5B6Q34UIQ)をある程度習得すること、月に一度趣味のアート作品を生み出すこと、一人で着物の着付けを出来るようになること、庭の花をちょっと増やして枯れさせないようにすること──神は言っている、詰め込みすぎだと──掲げたい目標はまだあるんですがいい加減にしておきなさいということで一旦〆ましょう、あと三人くらい自分がいればなぁと思います。

雑談はこのくらいで、今回の本題は……昨年より改めて確認しようと思っていた話をします。Formについてです。

Form(フォーム)って何

  • 英単語の意味:形、形式
  • ITっぽい意味:ユーザーが情報を入力・送信するための、Web上の画面

身近かつアナログなフォームだと応募はがきとかお役所に出す書類とかそんなんでしょうか。
決まった形になぞらえて必要な情報を書き込み、送る。受け取ったほうはそいつをいい感じに加工したりそのまま保存したり色々するわけですね。
画面の話ってことはフロントの話、HTMLの方面になっていきます。詳細はリンク先を見よう。

https://developer.mozilla.org/ja/docs/Web/HTML/Element/form

cakephpでのFormの扱い

Web上で見える部分、つまり画面に表示されるほうでは、テキストを入力したりいくつかの選択肢から一つ選んだりといったフォームの構成要素をとっても簡単に用意してくれる優れモノがいます。FormHelperです。

https://book.cakephp.org/4/ja/views/helpers/form.html

雑に区分すると「勝手にしな!フォーム」と「お利口さんフォーム」があり、前者はcakephp的には「モデルのないフォーム」のようです。
元々はForm作成時にエンティティを指定することで「OK!このエンティティ参考にForm作りますわ」という具合に勝手に入力項目がどんな奴か判断してくれたりして便利なんですね。
ちょっと複雑な構造になっているからエンティティを指定するとやりづらい、入力値チェックしてOKだったら特定の処理を行いたいだけでエンティティは別に必要ないんだ、みたいな時には前者が使いやすいみたいです。
モデルのないほうを使うには、\Cake\Form\Formを継承している任意のFormクラスを作って、エンティティを渡していたところに代わってFormを設定してあれやこれやするのですが、これが難しくて困ったものです。

導入にもなりませんでしたが力尽きたのでこのくらいにします。