質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.91%

フレームワークの仕組み

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 1,665

score 8

Lavelフレームワークやcakephpをいきなり使うことになりましたPG初心者なのですが、
フレームワークの(システム開発を効率化してくれる機能群だということは理解できるのですが)イメージが付きません。
具体的には作成されるフォルダ階層がそれにあたるということでしょうか。
また、php単体だけで考えるならば、phpファイルはWebサーバによって実行されると思うのですが、
フレームワークを使用してから、Webサーバの存在が見えにくくなってしまいました。

フレームワークを使用する際も、Webサーバの上でLavelというソフトが動いているというイメージでしょうか。
artisanコマンドを使用するとサーバーを立ち上げたりできるので、Laravelの上でWebサーバが動いているのかなと考えてもみたりして、フレームワークというものの位置づけがわからなくなってしまいます。

初歩的な質問で申し訳ございませんが、ネットで探してもピンとくる答えが見つからなかったので利用させていただきました。宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+3

PHPフレームワークの場合、あんまり深く考える必要が無く
例えばLaravelの場合

  • Laravelというwebアプリケーションが動く
  • 一定の決まりに沿ってプログラミングをすると、Laravelに機能を追加できる

というのが基本的なところで、フレームワークが提供するコマンドは開発や運用を楽にするためのツールと考えればOKです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/01 07:20

    ご回答ありがとうございます。
    そうですね、あまり理屈ぽくならずにこういうものだと思ってコーディングしてみます。

    キャンセル

+2

こんにちは。
 
フレームワークがどのような機能や利便性を、アプリケーション開発者に提供しているかを
把握するための良い方法のひとつとして、

フレームワークを自分で作ってみる

という手段があります。
この方法のガイドとなる参考図書として、PHP でしたら、以下をオススメします。

パーフェクトPHP 技術評論社 (2010/11/12)

この本の第6章以降で、サンプルのWebアプリケーションを作っていくのですが、
アプリ自体を作る前に、フレームワークを作ってから、アプリ個別の機能を実装する
という手順を踏んでいます。

フレームワークが提供する機能の説明と実際にフレームワークを作成していくことに
丸々ひとつの章(第7章 フレームワークによる効率的な開発)を使っており、
この章を読むと、フレームワークが何をしてくれているのか、個別のアプリ開発者には
何をどこからやってもらう必要があるのか、といったことを、フレームワークを
自作する作業を通してコードレベルで理解できると思います。
(そのためには、それなりに、きちんと写経しなければなりませんが。)

あとは、 Cake にしても Laravel にしても、世の中に広く出回っているフレームワークも
基本的には同じことをやってくれていて、その提供する機能がより便利だったり、
実務に耐えうる堅牢なものだったり、コミュニティによるサポートがあったりするというもの
であることが分かると思います。

以上参考になれば幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/01 07:17

    ご回答ありがとうございます。
    フレームワークを実際に作ることができるのですか?!をしていないのにもか?

    キャンセル

  • 2018/03/01 07:18

    とりあえずコードを書きながら感覚を掴んで上記の書籍を購入してみます。

    キャンセル

  • 2018/03/01 09:35

    PHPの入門レベルはマスターできたと思ったら、次に読むと、とても有益な本だと思います。購入する前に、アマゾンのレビューを読むと、前提になるレベルや習得できる内容が分かってよいかもしれません。

    キャンセル

checkベストアンサー

+1

フレームワークを使用する際も、Webサーバの上でLavelというソフトが動いているというイメージでしょうか。

はい。

artisanコマンドを使用するとサーバーを立ち上げたりできるので、Laravelの上でWebサーバが動いているのかなと考えてもみたりして、フレームワークというものの位置づけがわからなくなってしまいます。

PHPのビルトインサーバーを呼び出すらしいです。あくまで動作確認用ですね。本番環境ではapache上でlaravelが動きます。(mod_phpやcgiの仕組み上語弊はありますが・・・)

PHPのフレームワークの多くは.htaccessでindex.phpが真っ先に処理されるようになっています。
そこから様々なクラスを読み込みつつ(設定ファイル読み込みとかDBへの接続等etc...)、ルーティング処理でURLに対応したディレクトリやファイルのコントローラークラスが呼ばれます。最後に文字列(html)を出力という流れです。かなり端折っていますが大体はこんな感じ。

フレームワークを使用してから、Webサーバの存在が見えにくくなってしまいました。

この感覚は正しいと思います。どこから呼び出されるのか、どこで処理をしているのか把握はし難いですが、ルールを守っていれば把握しなくても使えるのがフレームワークなのです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/01 07:15

    ご丁寧にありがとうございました。
    ビルドインサーバとは検証用なのですね!知らなかったです。あまり深く考えすぎずにとりあえず書いてみようと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る