• ベストアンサー

Symphony、Cake PHPとは?

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

noname#102617
noname#102617
  • PHP
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
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

  • PHPのフレームワークとはどれがいいのでしょうか

    私は、PHPを使ってWEBのシステム構築に携わっております。 いままではフォームの組み込み等の簡単なものだったため、 PHPを記述して対応しておりましたが、大きいシステムのお話などが 出てきだしており、システムの作成をもっと効率化できないかなど 自分のステップアップを考えております。 ある程度の規模に対応でき、システム開発が柔軟に行えるようなPHP フレームワークはございますでしょうか。 Cake PHPやFuelPHP等が出てきますが、多数の種類があるため、 利用者様や学習者様のお声をお聞きしたく、質問をさせていただきました。 DBを利用することも多々ありますので、DBとの連携も容易なものがありがたいです。

    • ベストアンサー
    • PHP
  • PHP入門本

    お世話になります。 社内備品管理システムなどをPHPを使用して 作成することになりました。 PHPは初心者です。 勉強始めにあたりお勧めの本があれば回答ください。 目標:DB連携のアプリケーション作成 経験:VB2年 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 工数見積もり

    すいません質問させて下さい。 VBなどでフォームを使って画面なんかを作る場合 業務的にどのくらいの工数を見積もるんでしょうか?1画面あたり。 作成画面は顧客の情報をDBから読み込み表示 とか、登録などが主なものです。 あとVBのモジュールというのはどのように本数を数えたらいいのでしょうか? 1画面あたり1モジュールと数えればいいのか、それとも純粋に1ファンクション ごとに考えるのでしょうか? どう切り分けていいのか全く分りません。 どのように工数を考えたらいいのでしょうか? さらにDBは1DBあたり何日構築かかるとか計算するのでしょうか? 具体的には画面15位 PGM20本弱(どう数えたらいいのか分らないので おおよそ) DBが10DBくらいの規模なんですが。 なんかわかりづらい質問ですみません、是非アドバイスをお願いします。

  • VB.NET DataGridView Web連携

    VB.NETの開発でアプリの実行端末にDB接続の環境がない可能性を考えてWebアプリとの連携を考えています VB.NETで開発したフォームのDataGridViewに表示するデータをWebアプリ(ASP、サーブレットなど)と連携するためにはどうすれば良いですか? 考えているのは単純にURLにパラメータを付けてReqeustして結果をカンマ区切りなどで出力したデータをResponseし、一行ずつ分解してDataGridViewの項目に設定していけばいいのかな?って思っています。 他に良いやり方などあれば教えて頂きたいです。

  • PHPによるMySQLを使ったアップローダについて

    初めて投稿させて頂きます。 現在、PHPを使って、DB(MySQL)に情報を登録するシステムを構築しています。 そこで、質問なのですが、フォームからファイルをアップロードさせ、送信したファイルをDBに保存するにはどうすれば良いのでしょうか? DBを使った掲示板のプログラムを参考にしているのですが、肝心のファイルは、DBにファイル名が登録されるだけで、ファイル自体はPHPで設定したディレクトリに保存されます。 ファイルをホームページの領域に保存するのではなく、DBに保存する事は出来ないのでしょうか? また、可能であれば、どの様にDBに保存すれば良いのか・フィールドの型は何にしたら良いのでしょうか? わかりにくい説明ですいませんが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPとMySQLについて

    社内サーバーにWebアプリをUPし、 全てデータベース管理にするため、MySQLを使用しました。 参考書を見ながら作成したため、構文に間違いはありません。 参考書は「 はじめての人のためのかんたんPHP + MySQL入門」です。 この参考書の第8章にあるWEBアプリを忠実に再現しました。 しかし、フォームに情報を入力し、登録を押しても情報が反映されません。 以上と同じように、ぶっとびねっと(フリーレンタルサーバー)でもUPし、phpMyAdminでDBを構築しましたが、 これも同じく登録情報が反映されませんでした。 無論、phpMyAdminから直接CREATEし、HPに情報を反映させるのは可能です。 その際、日本語が???となってしまいましたが、その他は正常です。 一番の問題は、なぜHPから情報を入力し、それがDBへ反映されないのかです。 .htpccessやPHP.iniの設定と何か関係があるのでしょうか? 社内サーバーに.htaccessファイルは無いそうです。 となると、php.iniだと思います。 私は初心者のため、イマイチPHP.iniが良く分かりません。 ローカルにApacheなどを落とした場合は、C:Windowsの中にPHP.iniの設定をいじればいいと思いますが、 社内サーバーの場合、サーバー上のどこかにあるPHP.iniファイルの設定を変える必要があるのでしょうか? 以上、ごちゃごちゃしてて申し訳ありませんが、 お助け下さい。

    • ベストアンサー
    • PHP
  • PHP入力フォームについて

    現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

    • 締切済み
    • PHP
  • PHPとMYQSLの連携がうまくいきません。

    PHPとMYQSLの連携がうまくいきません。 mysqlへのコネクションコマンド  mysql_connect($db_host,$db_username,$db_password); 実行すると、 Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\now_month.php on line 51 というのが出ます。 環境は OS :WINDOWS_VISTA WWW:apache2.2 PHP:PHP5.2.13(ZIP) DB :MYSQL5.1.47 通常のPHPの動作はできています。 mysqlとの連携だけがうまくいきません。 phpinfo()による表示ではMYSQLのヘッダは出てきません。 php.iniのフォルダはc:/phpで、 抜粋でコピペすると extension_dir = "c:/php/ext" extension=php_mysql.dll (コメント外し) 基本的にはこれだけでいいはずなんですが....自信なくなりました。 関係ないかもしれないですが、 php.ini内の文字コードを書籍参照しながら少しいじってあります。 また、mysqlインストール時のウィザードで 文字コード「cp932」(SJISの事らしいです。)を選択しました。 当然色々自分で調べてみましたが、 同じような症状、解決策等を見つけては試し、それでも解決しないためギブアップ気味です。 書いてあることも様々だったので、どれが正しいんだか分りません。 フォルダ配置関連で試したのは、 libmysql.dll → c:/windowsまたはその配下system32 もしくはapache内のbinにコピー php.ini → c:/windows にも配置 phpフォルダ配下のphp5ts.dllと「php*.dll」を除くすべてのdllファイルをsystem32にコピー おもに参考にした書籍 「10日で覚えるPHP5入門教室」 「PHP5.0+MySQL5.0で構築する最速WEBシステム」 「初めてのPHP&MySQL」 この作業だけで何時間も費やしてしまい、心が折れそうです。 足りない情報があれば追記しますので どうかご教授ください。

    • ベストアンサー
    • PHP
  • PHP、MySQLでテキストを処理する

    英語やドイツ語など、スペースで区切られた言葉で作られた任意の文書を解析 したいのです。解析内容は、単語ごとに分解し、その単語が出現した回数をカウントし DB(MySQLなど)に格納します。PHPとMySQLで何とか実現したいのですが、どのような 方法で、どんな関数を使うかなど教えていただけないでしょうか。 入力されるデータはTEXT形式(WORDもあり)で、WebのフォームからCut&Pasteや 直接打ち込み などの方法で入れます。格納形式は半角の小文字です。 DBに格納されたデータは別のDBと連携させる予定です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの設定を行っています。

    ほぼ知識のない初心者が先日さくらVPSをレンタルし、Webサーバを構築すべくおくせくやっております。 ただ今PHPをインストールしたところです。 (yum -y install php でインストールしました) php.iniのファイルの中身を変更したいのですが、初心者なもので何をどう変更したらよいのかが全く分からない状況です。 参考となるようなサイトをご存じのかたがいましたらぜひ教えて下さい。 (自分でもいろいろ検索したのですが、なにを参考にしたら良いかがわかりません・・・) 他にも、必ずインストールしなくてはならないもの(たとえばphp-mbstring)もしくは、推奨していただけるモジュールがあれば教えて下さい。

専門家に質問してみよう