CakePHPってなに?WEBアプリケーションフレームワークってなに?美味しいの?
CakePHPってどんな時に使えば良いの?という質問をもらったので書いてみます。
ぶっちゃけると、WEBアプリケーションならなんでもOKですw
それじゃあ、あんまりなので、僕がCakePHPを使うようになった経緯を書いてみます。
頭から順々に処理を書いて行き、必要に応じて関数に切り分ける。いわゆる関数型って言うんでしょうかね?
初めは、そんなプログラミングでした。
今でも、あんまし変わらないけど。
具体的には、ページ毎に.phpファイルを作って行き、共通する処理はconfig.phpにまとめておく。
という、それだけ。
さらに具体的には、ファイルの上部にPHP、下部にHTMLと言う構成で1ページの.phpを書いてました。
これはもちろん俺流で、気分によって微妙に書き方が変わっていました。
変数も関数も命名規則はなく、ディレクトリ構成は完全にその時の気分で作ってました。
独学で俺流なので、適当に書くことの弊害を理解していなかったんですね。
簡単なものなら俺流でもまったく問題ありません。
それこそ1ページで完結しているようなアプリケーションとか。
でもそこそこ複雑で、何十ページにも及ぶようなアプリケーションになってくると話は違いました。
そこそこな規模になることは分かっていたので、俺流は俺流でもある程度は規則を作って臨みました。
しかし規則に当てはまらない想定外な事態が次々に発生し、はじめに作った俺流規則は全く役に立たなくなってしまいました。
できたアプリケーションは動くには動くが、明らかにスパゲッティなコードでした。
だって自分で作ったのに、自分で直せないんだもんw
規則を作るの面倒だ!
どっかに誰かが作って、そして実践で生かされている規則はないのか?
あるんですね~w
オープンソースって素晴らしいですね!
その規則が、フレームワークです。
そのころ巷では、ruby on railsが流行っていて、PHPフレームワークも注目を浴びてたように思います。
なんでも、ruby on railsは超速でアプリケーションが作れるんだとか。
そしたら僕も使ってみたいぞ、どれを使えば良いんだ?
CakePHPは、初めから規則が決まっていてそれに従って作る。
ディレクトリ構成が分かり易い。(主観ですが)
日本語情報が比較的多め。
ruby on railsに似ている。
基本的にCakePHP単体で動く。その他のライブラリとか要らない。
この辺がCakePHPを選んだ理由でしょうかね?
あと以下のサイトにある動画も影響大きかった気がします。
10分で作るCakePHPアプリ for Windows
http://moyashi.jp/cake/
なんでCakePHPとかのフレームワーク使うと、早く開発ができるの?、って話なんですが、
データベースを使ったアプリケーションなら、登録する、削除する、編集する、一覧する、っていう主な4つの動作、それ自体にそんなに違いは無い。
なので予め作っておいて、それを改造すれば良い。
具体的にどんだけ早いの?って話なんだけど、データベースが作ってあって、環境があって、CakePHPも設置済みであれば、
主な4つの動作をするアプリケーションが数秒で出来てしまいます。
これは誇張しているわけではなくて本当です。
つまりフレームワークに沿ったアプリケーションが自動で生成されてしまうわけです。
あとはそれをカスタマイズすれば、希望通りのアプリケーションが完成するっていう流れです。
まあ実際にはそこまで簡単では無いんですが。
さらに具体的に、どんな場面で使えば良いのか?
例えばWordPressだって、カスタマイズすればなんでも出来るようにはなるでしょう。
ですが新しいテーブルをいっぱい追加して、それが複雑にリレーションするようなカスタマイズが、果たして簡単でしょうか?
WordPressの機能を半分も使わないようなアプリの開発に、WordPressを使う意味はあるでしょうか?
疑問に感じたら、CakePHPの出番かもしれません。
人の欲求に答えるように、WEBアプリケーションはどんどん複雑になって来ています。
しかしその度にプログラマー達は、複雑なアプリケーションを簡単に作れるように、新しい技術を創り出してきました。
CakePHPもその一つなのだと思います。
前の記事: #cssnitelp14 fireworksの勉強会に行ってきた
次の記事: TLをA4に印刷すると、15万7千枚。
2011/03/08 | 開発記録
前の記事: #cssnitelp14 fireworksの勉強会に行ってきた
次の記事: TLをA4に印刷すると、15万7千枚。
コメント/トラックバック
トラックバック用URL:
この投稿のコメント・トラックバックRSS