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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

2209閲覧

フレームワークの仕組み

tyamatyama

総合スコア8

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2018/02/25 07:02

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

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

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

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

投稿2018/02/25 07:22

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tyamatyama

2018/02/28 22:20

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

0

こんにちは。

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

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

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

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

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

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

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

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

投稿2018/02/25 08:04

編集2018/02/25 08:16
jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tyamatyama

2018/02/28 22:17

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

2018/02/28 22:18

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

2018/03/01 00:35

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

0

ベストアンサー

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

はい。

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

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

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

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

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

投稿2018/02/25 12:33

nullbot

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tyamatyama

2018/02/28 22:15

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問