というわけで、最近夫婦間のコミュニケーションに課題を感じていて、サービス実現に向けてCakePHPの超基礎からお勉強をしているわけですが、今回フレームワークである MVC の概要やメリット、デメリットについていつも忘れてしまうので備忘録としてブログします。MVCが理解出来ていれば、その他フレームワーク(Rails)も同じなので、ここは確実に覚えるしかない!


■Whats MVC?

https://book.cakephp.org/1.3/ja/The-Manual/Beginning-With-CakePHP/Understanding-Model-View-Controller.html

  • Viewの概念

・Model
 ・ビジネスロジックの実行とDBへアクセスするためのもの
 ・アプリケーションが扱うデータの操作
 ・ControllerやViewに結果を提供

・View
 ・ユーザーインタフェース
 ・ユーザへの結果を出力
 ・Modelのデータの状態を参照して画面に表示

・Controller
 ・入力情報を受け取る
 ・処理を行うModelと結果を返してViewを選定する
 ・完全に司令塔

・流れ
 1. 入力されたURLを識別して、適切な処理を実行(Dispatcher/Routes)
 2. ControllerはModelと連携して、必要な情報をViewに渡す
 3. 処理された状態のViewがブラウザで表示される

流れ的にはこの3つの動きを理解していれば大丈夫ですね。そもそもCakePHPは機能ごとに分割されているので、作業がしやすいということと、設定上独立しているので、変更や修正があった場合影響が受けにくいというのがメリットです。

また、デメリットはデータ要件が複雑になると、Modelが肥大化してしまい、入力に応じた要件が複雑になってしまうとControllerとViewの依存性が高まるとのことですが、そうなる前に仕様をちゃんと把握することが大事ですね。


■その他CakePHPの特徴

  • Entity

個々のレコード行やレコードレベルの振る舞いによって機能を定義することができ、複数レコードにカスタムロジックを定義することもできます。また、命名規則でテーブルクラスとエンティティークラスが関連付けられます。CakePHP3.0からデータベースの1レコードの操作が可能になりました。これによって柔軟なデータベースの操作ができるようになったわけですね。

  • Table

データのコレクションへアクセスし、アソシエーションを加えてメソッドを定義したい場合、レコードを保存したり、既存データの編集や削除、リレーションの定義と一括処理が可能です。

  • Element

HTMLファイルをパーツごとに書き出すことができて、Templateから呼び出して同じパーツへ共通化して再利用することが可能です。なので、広告、ヘルプボックス、メニュー、ポップアップ、フォームなどの繰り返し利用できるパーツはElementに書くと楽ですね。


■まとめ

という感じでね、MVCについて一通り理解できれば完璧だと思います。自分はCakePHP4を触っているということもあり、バージョンごとに設定ファイルなどちょい変わっている部分もあるので、作りながら覚えるのが一番早いということが分かりましたね。今後はCakePHPについてもじゃんじゃんブログしていこうと思います〜

参考: CakePHP2 実践入門


カテゴリー: CakePHP

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください