Help us understand the problem. What is going on with this article?

今月クリスマスだけど、一緒にケーキを食べてくれる人がいないからCakePHPについて記事を書いてみた

More than 1 year has passed since last update.

ユアマイスターアドベントカレンダー2018 の1日目の記事です。

馴れ初め

転職しWeb開発に関わり初めて、最初に出会ったのがPHPとCakePHPというフレームワークでした。Web技術の基礎はCakePHPに触れながら学んできたので、振り返りを兼ねて今回記事を書くことにしました。

CakePHPとは

CakePHPはオープンソースで作成されたPHPの高速開発フレームワークで、webアプリケーションを作る際に
基本となる骨組みを提供してくれます。

特徴

フォルダの構成

bin             -- 実行可能コマンド群
config          -- 設定ファイル
logs            -- ログ出力場所
plugins         -- プラグインの格納場所
src             -- 開発のソースコード(Controller、Model、Viewなど)
tests           -- テストケース格納場所
tmp             -- 一時的なデータの格納場所
vendor          -- ライブラリーの格納場所
webroot         -- 公開ディレクトリ

  • config
    DBの接続の情報などの設定ファイルを格納するディレクトリ
    最初の頃、どこでも呼べるから超便利だと思って、なんでもconfigに書いていた時期がありました。
    その結果、管理ができなくなって、configファイルの整理に苦しんでいます...
    苦い経験ですね…

  • src
    アプリケーションを開発する上で一番触れることが多いディレクトリ
    MVCモデルを意識しながら開発することがなかったので、この処理はコントローラに書くべきかモデルに
    書くべきか先輩エンジニアにレビューしてもらいながら開発を進めてました。
    もし、CakePHPを恋人と例えるならば、恋人繋ぎするための手ではないでしょうか(笑)

  • vendor
    ここはcomposerによってインストールされるライブラリーが格納されるディレクトリ
    基本的に編集することはなく触れる機会がありませんでしたが、ちょうど一週間前(11月末)に
    CakePHPのバージョンを3.5.13から3.6.13にバージョンアップし、その時に触れる機会がありました。
    composer installcomposer update について学べたり、いい経験になりました。
    弊社のブログに記事があるので、興味ある方は下のリンクから
    http://yourmystar-engineer.hatenablog.jp/entry/2018/11/27/231820

リクエストされる順番

クライアントからサーバーへリクエストの流れ
1. index.phpにアクセスして、リクエストを制御する
2. リクエストのルーティング情報でコントローラとアクションを呼ぶ
3. コントローラからモデルとコンポーネントとやりとりを行う
4. コントローラから出力結果をビューに渡す
5. ビューがボディーとヘッダーを生成して、レスポンスを返す

IMG_2419.JPG

MVC

モデル(M)、ビュー(V)、コントローラ(C)に役割分担させて開発していくモデル

IMG_2420.JPG

コントローラ

MVCのCの部分。
ルーティング情報から適切なコントローラが見つけられ、アクションが呼ばれる。
コントローラはリクエストを解釈して、モデルと通信して、ビューを書き出す。
モデルとビューの架け橋となる役割をしてくれる。
肥大化しがちなので、できるだけシンプルにすることを意識すること。

モデル

MVCのMの部分。
データベースに対する操作だったり、ビジネスロジックを記載するところ。
プログラムを初めた頃はピンと来なかったので、コントローラとビュー以外を書くところだと覚えていました。

ビュー

MVCのVの部分。
リクエストに対して、出力を生成する役割を担ってくれる。

まとめ

今回簡単に自分が使っているフレームワークについて記事にしてみました。
毎日触れているものですが、いざ文字にするとわからないことだらけ…
最近、他の言語やフレームワークに浮気したいと思う気持ちがあったりしますが、
もっとCakePHPのこと知って、共に歩んでいこうと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした