そもそもPHPとは何なのか??
何をするために必要なのか??
PHPで具体的にどんなものが作れるのか??
などなど初心者の私には、PHPを使ってプログラミングに入る前に根本的な疑問が耐えないのでまずは基本中の基本から学んでいきたいと思います。
PHPとはそもそも何なのか??
PHPを勉強していく時、みなさんいろいろな本やサイトで調べたことと思います。
PHPとは何なのかを調べると決まって出てくる説明文として
「PHPとはオープンソースのスクリプト言語で、webアプリケーション開発に特化しているサーバサイドのプログラミング言語です。」
はい、いきなり意味不明です….。
この説明文で使われている言葉の意味さえわからない状態に陥ります。
もっと手っ取り早く、PHPのなんとなくのイメージと言うか役割がわかる方法はないものか…。
ということで、具体的な内容に入る前にイメージを掴んでいきたいと思います。
PHPの働きを電卓に例えてイメージを掴む
例えば、みなさんが普段使っている電卓が出来上がるまでの工程をプログラミング言語に例えると、PHPはどの部分に当たるのかを考えてみたいと思います。
①まずはHTMLで電卓のボタンや画面など、基盤となるものを作ります。
これはphpのイメージを掴むための例えなので、実際HTMLで何かの基盤を作る場合はもう少し並び方が違うと思いますがご了承ください。
②次にCSSによりボタンの配置や色のデザインなどをさらにカスタマイズしていきます。
③電卓の見た目は完成しました。PHPによりさらに、電卓としての一番必要な機能、ボタンを押すとその数字が画面に表示されたり、さらに足し算や割り算など計算機能を付け足します。
このように、HTMLやCSSは見た目や配置などデザイン担当として目に見えた仕事をしてくれます。
PHPは電卓のボタンを押された時、電卓の内部(目には見えない部分で)で働いて計算結果を画面上に表示してくれるという裏方の仕事をしてくれます。
この仕事はHTMLとCSSだけではできない仕事です。
※これはあくまでPHPのイメージを掴むためのものであり、実際に電卓を作るのにPHPが使われているわけではありません。
PHPの掲示板での役割
PHPのイメージを電卓でなんとなくわかったような気はしますが、それはあくまで空想の話でした。
では実際にPHPを使って作れる物の中に、よくいろんなサイトで見かけることがある掲示板があります。
次はさらに実践的な内容でPHPの働きについて見ていきたいと思います。
※今回使用している画像は、以前に書かせて頂いた掲示板作成の記事を使用しています。興味のある方は合わせてどうぞ。
①HTMLにより掲示板の基盤を作ります。
②さらにCSSにより、フォントや位置の調整を行います。
③最後にPHPを使って、掲示板に必要な機能である実際にユーザーさんから投稿された内容を投稿一覧部分に表示していくという動作を追加します。
この動きは、ユーザーさんが「送信」をクリックした時にPHPが私達の目には見えない所で働いていろんな処理をした後に、掲示板上に投稿内容を表示してくれる仕事をしています。
このように、HTMLやCSSだけでは実現できない処理や動作をPHPを追加することにより実現出来るということですね。
PHPは動的なページを作れる
HTMLやCSSだけで作ったwebページは静的なページ、PHPを使って作ったwebページは動的なページと言われるようですが、一体どういうことなのでしょうか??
静的なページ
静的なページは、いつ、誰が見ても同じ内容(情報)を表示するwebページです。
どこかの会社や企業のホームページなどがこれにあたると思います。
動的なページ
動的なページは、見る人(ユーザー)によって表示する内容が違うwebページです。
身近な例で例えると、facebookやtwitterなどがこれにあたるようです。
facebookは見る人によって表示されている内容が違いますよね。
このように、見る人(ユーザー)によって表示させている内容が違うwebページのことを動的なページと言い、これはPHPを使わないと実現できません。
つまり、動的なページというのはページを訪れてくれた人(ユーザー)によって表示する内容を変えることができるページということですね。
その他にも、webサイトの問い合わせフォームが作れたり、webサイトを見に来てくれたユーザーさんがちょうど100人目の方だったら、ページ上に「あなたは100人目のお客様です」とそのユーザーさんだけに表示させるようにしたりなど、PHPを使うことによって作れるwebサイトの幅が広がりますね。
PHPはサーバーサイドスクリプト言語
「PHPはサーバーサイドスクリプト言語」…。
意味不明です。
一つずつ考えていきたいと思います。
スクリプト言語とは
スクリプト言語とは、プログラミング言語の一種のことです。
スクリプト言語は、プログラムを記述する内容が比較的簡単で短い記述で処理を実行することが可能なプログラミング言語のことです。
デメリットとして、動作が低速ということがあるようです。
「処理の手間がかからず、プログラムを記述することは比較的簡単だが、処理速度は遅めなプログラミング言語」
という認識で良いのではないでしょうか。
PHPはサーバーサイドで動く(PHPの動作するまでの仕組み)
PHPを始めるにはサーバーが必要だと聞いたような気がする….。
PHPはサーバーサイドで動作する言語と言われるようです。また、PHPとは対象的にブラウザ側(パソコン側)で動作するHTMLやCSS、Javascriptなどはクライアントサイドで動作する言語と言われるようなのでついでに覚えておきたいと思います。
では「サーバーサイドで動作する」とは具体的にはどういうことなのでしょうか??
少し詳しく見ていきたいと思います。
今回参考にさせて頂いたページはこちらです。
クライアントサイドとサーバーサイド
まずは、おおまかな仕組みです。
HTML,CSS,Javascriptはパソコンのブラウザ(GoogleChromeやFirefox、Internet Explorerなど)だけで動作します。
一方、PHPはサーバー上で動作します。
つまり、サーバーに情報を送って、サーバー上でPHPが働き、いろいろな処理が行われてその結果がパソコンに返信されて初めてページが表示されるという感じの仕組みではないでしょうか。
ブラウザだけで動作してくれるHTMLなどには必要のないサーバーの働きが必要となってくるのですね。
ではさらに詳しく見ていきたいと思います。
サーバー内でのPHPの位置
サーバーの内部でさらに3つの部署(webサーバ・アプリケーションサーバ・データベースサーバ)に分かれています。
※部署というのは、わかりやすく言うために部署と例えているだけですのでご了承ください…。
聞いたことのあるような、ないような言葉、Apache(アパッチ)・MySQLというものも出てきましたね。
サーバーの3つの部署の中で、PHPはアプリケーションサーバという部署になるようです。PHPはこの部署で動作しているようですね。
今回の説明では、WebサーバソフトではApache、データベースサーバのシステムではMySQLを挙げましたが他にもいろいろ種類があります。
ただ、初心者として勉強するときにはメジャーなものとしてApacheやMySQLがよく挙げられているので今回はこの2つを選ばせていただきました。
※Apache,MySQLについては別記事にて書いていきたいと思います。
なんとなくの構造はわかってきました。
では次は、さらに具体的な流れを見ていきたいと思います。
PHPが動作するまでの流れとApache・PHP・MySQLのそれぞれの働き
①まずはブラウザが、私達が見たいページをURLを通してサーバーにリクエストします。
※この、「URLを通して」というのは「URLを入力したり、ブックマークしているサイトをクリックしたりすると」という解釈で良いかと思います。
つまり、私達が見たいページのURLにアクセスすると、ブラウザがサーバーに働きかけてくれるということになるかと思います。
②ブラウザによってサーバーに送られてきたURLを解釈するのは、Webサーバの部署にいるApacheの仕事です。
Apacheは送られてきたURLがどんなファイルなのかを解釈し、そのファイルがPHPプログラムだった場合はアプリケーションサーバにPHPの解釈と実行をお願いします。
③Apache(Webサーバ)から受け取ったPHPプログラムを、アプリケーションサーバで解釈し実行します。
ここでPHPが動作しているということですね。
受け取ったPHPプログラムの内容によっては、データの保存やデータの読み込みが必要な場合があるようで、その場合はPHPがデータベースサーバ(ここではMySQL)にお願いして、必要なデータを保存したり読み込んでもらったりします。
もちろん必要ない場合はお願いすることはありません。
④そして、実行したPHPプログラムを最終的にはブラウザに返さなければならないのですが、ブラウザはPHPプログラムを解釈することができません。
なので、ブラウザが解釈できるHTMLなどの形に直して返して上げる必要があります。
なんとそれもPHPが行ってくれるようです。
つまり、PHPプログラムを実行してそれをHTMLなどブラウザが解釈できる形に直した上で、またWebサーバ(ここではApache)に返すまでがPHPの仕事となっているようです。
⑤アプリケーションサーバ(PHP)から受け取った結果がブラウザに表示されます。
PHPを始めるためにはサーバーが必要
PHPの働き的なものはなんとなくわかってきたような気がします。
ここまでの勉強で、PHPで何かをしていくためには絶対にサーバーが必要だということもわかりました。
サーバーが必要と聞くと、お金がとてもかかりそうなイメージ…。
しかし、そんなことはないようです。
レンタルサーバーを使う
サーバー自体を自分で買う必要はなく、レンタルサーバーというものがあります。
いろいろな会社があり、値段も様々なので自分の用途に応じて選ぶと良いかと思います。
安い所では数百円から提供してくれている会社も結構あります。
ちなみに、サーバーを選ぶときには、あらかじめPHPがインストールされているサーバーを選んだほうが良いようですね。
最近のレンタルサーバーには大概、PHPはあらかじめインストールされているようですが、もしインストールされていないサーバーだと自分でPHPをインストールする必要があるみたいなので…。
※こちらのページではいろいろなレンタルサーバーの紹介をされているので参考にされても良いかもしれません。
仮想サーバー「XAMPP」を使う
いきなりレンタルサーバーでサーバーを借りてしまうのはちょっと…。
先にPHPの練習だけしてみたいという方には、仮想サーバーというものもあり、実在するサーバーではありませんが、あたかもサーバーを使っているような動作をしてくれるものです。
XAMPP(ザンプ)というものが、この仮想サーバーにあたりますが、これをパソコンにインストールすれば、PHPの動作を確認したりPHPで何かを作ってみたりすることが可能です。
もちろん無料ですし、このソフトはパソコン上に仮想のサーバーを作ってくれるだけなので実際に作ったものがWeb上にアップされてしまうなんて心配もありません。
※XAMPPについて、インストール方法については、過去に書いた記事がありますので、興味のある方はこちらのページも合わせてどうぞ。
PHPっていうものがどういうものなのか、なんとなくわかってきたような気がします。
もちろん今回PHPで作れるものとして挙げたもの以外にも、もっともっとたくさんのものを作ることが出来ると思います。
基礎的なことを必要最低限学んだら、あとは実践で覚えていくのが一番の近道かなと今は考えています。
先は長そうですが、地道に頑張っていきたいと思います!!
- 週間Tweaks:ステータスバーの時刻をダブルタップで日付に切り替え「DateTap」など - 2018/02/12
- 週間Tweaks:iPhoneXでスワイプアップでロック「SwipeUpLockX」やドックをカスタマイズ「Marina」など - 2018/02/05
- 週間Tweaks:iPhoneXのアプリスイッチャーでスワイプでアプリ終了「EasySwitcherX」など - 2018/01/29