• ベストアンサー

Symphony、Cake PHPとは?

本でSymphonyなどを見たのですが、メリットがつかめません。 VBといった統合開発環境を思い浮かべますが、自分でソースを書いたり、フォーム部品を書かないといけないようで直観的に構築できるアプリではないですね。 PHP、DBで製作しているときに、手がかかるのがDBとPHPの連携ですが、上記アプリで作ったとしても、そういう手数がかかるようです。 Symphonyをインストールして試用すれば、一番わかるのですが、いまは自分で作ったモジュールを組み合わせていけば構築できてしまうので、こちらで聞くことにしました。

質問者が選んだベストアンサー

  • ベストアンサー
noname#94983
noname#94983
回答No.1

SymphonyやCakePHPは、一般に「MVCフレームワーク」と呼ばれるもの。アプリケーション全体のシステムそのものを提供するものになる。 アプリケーションを作成するとき、全体を「モデル(データベースアクセス)」「ビュー(画面表示)」「コントローラー(制御)」のそれぞれの部品として構築していく。既にシステム自体が用意されているため、開発は単にそれぞれの部品を用意するだけですむ。また統一された構造と表示を簡単に作成できるし、多くの機能を簡単なコードで組み込むことができる。 >いまは自分で作ったモジュールを組み合わせていけば構築できてしまう これは、もしそれで十分なら、わざわざ使う必要はないと思う。実際、ごく簡単なWebアプリケーションでは、こうしたフレームワークは用いられない。ある程度以上の規模のものだと、その優位性が明らかになる。 「自分で作ったモジュールで十分」というのはわかる。だが、それはどの程度の規模のものを作ることを前提にしているだろうか。たとえばだが。複数のデータベースを連携して動かすようなシステムを構築する場合を考えてみる。たとえば、何かの予約管理システムを作るとしよう。すると、 ・予約対象(まぁ、ホテルの客室とか)のデータ管理システム ・顧客のデータ管理システム。 ・予約スケジュールの管理システム。 これらをそれぞれ用意する必要がある。また、これらはすべて連動して動くようにする必要がある。たとえば、ある顧客があるものを予約すると、予約対象・予約スケジュールが自動的に更新されないといけない。 当然だが、システムは誰もが勝手に使えてはならず、認証が必要となる。ログインしていない人間はゲスト扱いで最低限の情報参照だけができる。顧客はログインすると自身の予約とその確認などが行える。モデレータは予約のデータ修正などを行える。管理者はすべての権限を持つ。 また各入力および更新のフォームは、それぞれに細かなバリデーションとフィルター処理が必要になる。たとえば顧客の登録では、電話番号、メールアドレス、クレジット番号などはそれが正しい形式で入力されたかどうかバリデーションチェックを行い、常に正しく入力されるようにする必要がある。 まぁ、ざっとこれだけのものを作るとしよう。デザイン等のブラッシュアップは考えず、ごく原型の、すべて完全に動くプロトタイプを作るのにどれぐらい時間がかかるだろうか? オレなら、CakePHPを使って、まぁ30分もあればできる。3つのデータベースの登録に5分、CRUD(CREATE/READ/UPDATE/DELETE)の基本システムに5分。認証およびACL(アクセス制御リスト)の構築に10分、他、必要な表示を整えたりの調整に10分。フレームワークを使えば、ほとんどの処理は自動的に出来合いのものを作ってくれるので、ろくにコーディングなどしないでシステムのプロトタイプが完成する。 さて、自分のモジュールを組み合わせて、同じ時間で作れるかな?

noname#102617
質問者

お礼

回答ありがとうございました。 とてもわかりやすくて使ってみようと思いました。 想像もできました。 いま困っているのはWEBデザインのほうなんですけどね。。

関連するQ&A