CODEBASE School 6week(2月19日週)
この週から軽量フレームワークSlimを使ってWebアプリケーションを作る。まず、MVC、フレームワークの概念、Slimについての講義があって、Slimのチュートリアルを手を動かしながら進めていく感じ。
CODEBASE School 6week
フレームワークとは
例えば以下のような機能を提供する
- ルーティング
- プロジェクトひな形作成
- セキュリティ
- テンプレートエンジン
- ログ出力
- 認証
MVCについて
MVCとは?についてさぼさんのたとえが凄くわかりやすかったので以下そのまま引用
MVCもオブジェクト指向が出来た成り立ちと同じく、こうやって役割分担すると人間が理解しやすいよねで出来てるプログラミングの設計の概念ですねー
飲食店一人で経営してたけどそろそろ人雇おうかーってことで、ウェイターと料理人一人ずつ雇おうみたいな、人に役割を与えて決まった事をやってもらうのとにてて
ModelとViewとControllerにそれぞれ役割を与えて実装する、すると1つずつのクラスの役割が明確なので実装しやすいのと、MVCを知ってる人同士で開発するときに同じフレームワークで開発できるので議論しやすい
更にSlimのトップページにあるHello,World的なコードはMVCなのか??ってい疑問があったので、この場合は飲食店一人で経営になります???って聞いてみた
slimに乗っかればとりあえずMVCの土台の上には居る感じ。ModelとViewまだ出てきてないですけど app.phpがControllerの役割します MVC、基本的にあと1人Routerが居て MVC(R) なんですけど app.phpはRouter, Controllerの役割します Router... 来たリクエストのURLと対応するControllerを決める Controller...受け取ったリクエストの窓口、処理と、ModelとVIewの呼び出しを担当 Model... データ層とのやり取りを担当。PDO, ORM, DataMapper 等(複数デザインパターンあり) View... HTMLやJSONの表現を担当。生php、twig, blade等 役割分担考えたけどまだ人雇ってない感じ?
MVCについては、Railsの教科書にわかりやすく説明されてる
composerについて
- プロジェクトが必要とするライブラリやパッケージを管理。 各ライブラリのインストールやバージョン管理や依存関係の管理
- インストール(Mac)
$ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer
Slim tutorial
- Slim 環境準備(MAMP)
$ composer create-project slim/slim-skeleton [my-app-name]
- Routingを覚える
- GETでクライアントがサーバーに渡せる情報はURLとqueryだけ
- POST Requestを扱う
- 画像アップロード
- Sessionを扱う
- Twigでテンプレートを効率的に書く
以下来週
- DBアクセス
- RequsestとResponseのHeaderを確認してみる 第14回
- セキュリティ
- 掲示板を作る 課題形式
- blogを作る 課題形式
まとめ
なんとなく動くものが簡単に準備できたのでおお!ってなった。来週からはDBも使うのでPHP本をちゃんと予習せなば!!!