それいけ!cakePHP!
これからcakePHPを使った作業になっていくのですが、
今までも何回かcakePHPが!みたいな話をずっとしてました。
それで、説明書きとかもしてたんですが。あくまでWebで取り入れた知識で
自分でcakePHPが何か、何をするものなのか、構造はどうなっているのか、
とか全くといっていいほど説明出来なくて、じゃあ今までやっていた事はなんなのか、と。
じゃあもう一回調べるしかないじゃん!ていうか勉強してんだし理解出来るまでやれよ!って話ですね。
間違ってたらすいません。誰か指摘下さい。
まずcakePHPのことを記述するならわかっていけなきゃいけないことがありました。
で、もうITとか関係なく "フレームワーク" って言葉自体を調べてみました。
問題が何か起きた時に解決するために用意しておく型、流れみたいな意味でした。
じゃあITでいうフレームワークは?
例えば、何かのファイルを毎日毎日書かなきゃいけないとして、0から毎日作るのって
すごいめんどくさいし時間がかかるじゃないですか。
短縮出来ないかなーってなるわけです。
毎日同じデザインやらレイアウトだったりしたら、そこのデータだけどこかに保存しておいて次やる時も最初から用意されていればいいなーって。
っていうのを準備しておいてくれるのがフレームワークなんです。
もちろんファイルだけの話ではなく、アプリ作成とか、メール送信、ログイン機能等で使われています。
ここまでのまとめ。
フレームワークとは、テンプレートがある程度用意されているもの、なんかしらプログラムなどの枠組み。
次はフレームワークのメリットとデメリットについてです。
メリット!
・ある程度のテンプレートが用意されているので作業をスムーズに行える。
上記の内容の事ですね。
・複数人で開発をする時にソースコードの書き方やレベルを統一出来る。
フレームワークにはソースの書き方やデータの保存先などにルールがあるため
みんなが見た時に理解しやすいんですね。
例えば僕が書いたソースコードを玄人の人が見たら汚い、と思いますし
逆に僕が玄人のソースコードを見るとよくわからなくなるような表記の仕方
をしている時があります。
そういうのをみんなで統一してたらどちらからでも理解出来るよねって話です。
・バグが少ない。
やはり人間が1から作りあげるものに、ヒューマンエラーはつきものです。
その点PCは変わらないものをずっと提供し続けてくれるので
バグが少なかったり、ゲームであれば消費者の予期してない行動にバグを
起こす、というのも減らしてくれるようです。
デメリット
・ルールを覚えるのが大変
当たり前ですが、いつもの自分の書き方をフレームワークに咎められたら
修正しなくてはなりません。
一度覚えてしまえば早いんだろうけど、慣れない書き方をするというのに
違和感を覚えることは多いようです。
・新しいプログラムなど、その追記処理をするのが大変
テンプレートは用意してくれていますが、多少柔軟性に欠けるところがあるようで
新規プログラムを読み込ませたり、それを反映させるのはなかなか難しいようです。
ここまでがフレームワークの話。cakephpはこれを応用したものになります。
M . . .( Model ) データや処理をする部分(データベースの処理)
V . . .( View ) 見た目を司る部分 (HTML出力)
C . . . ( Controller ) ModelとViewを繋ぐ役目 (設定)
の略称です。
それぞれ役割と働きがあり、関連付けされています。
はいじゃあこれがなんの役にたつのか、ということですね。
まず大きなプログラムを作成するとした時に、一つのファイルに内容や見た目、データベースからデータを取り出して...なんて指示するスクリプトを一つのファイルにまとめたりしてしまったらソースコードはぐちゃぐちゃになるし、どこに何を書いたなんか分からなくなるし、それはバグにも繋がってしまいますよね。
だったらそれぞれ別のファイルに作成してそれを寄せ集めたものを一つのプログラムとして成立させればいいんじゃんって。
動き方!
1 . ユーザーのリクエストを Controller がキャッチ。
2 . ControllerがModelにどのデータを取り出すかを指示。
3 . Modelがデータベースかデータを取り出す。
4 . CotrollerがViewに表現(表示)の指示を出す。
5 . それに応じてViewがControllerから情報を取り出す。
6 . Viewがユーザーに見やすいようにまとめて表現(表示)をする。
というフローになっています。
cakePHPを開いてみると、たくさんのフォルダの中にViewとControllerが
あると思います。
cakephp / src / View ( Controller )
あくまで概念的なものなのか、Modelフォルダは作らないといけないようです。
ですが実際に必要なものはそろっています。
なので、cakePHP=MVCフレームワークである事がわかります。
と、いう感じで、実際の動かし方とかは/14のブログで書けるかなぁ〜