- 追加された行はこの色です。
- 削除された行はこの色です。
- PHP へ行く。
#author("2021-01-20T19:30:56+09:00","default:inoue.ko","inoue.ko")
*PHP
Hypertext Preprocessor( Personal HomePage Tool )
~
PHPはオープンソースの汎用スクリプト言語で、Webアプリケーションの開発では最も頻繁に使われています。
//JavaScript の経験がある方にとっては、構文が良く似ていますので、スムーズに理解できるかもしれません(いずれもC言語がベース)。
#image(php.png,right,50%,WebSite-PHP_Schema_serveur by Emilien81)
HypertextPreprocessor という名のとおり、もともとはWebテンプレートを作成するためのもので、PHPのアウトプットはHTMLページです。普通のHTMLページは、静的なものとしてサーバーにアップされていますが、ページの内容をクライアント(閲覧者)の要求に応じてその都度変更する必要がある場合、サーバー側で、HTMLを書きなおす必要が生じます。それに対応する言語がPHPというわけです。したがって、PHPのソースコードは、ベースとなるHTMLと混在するようなイメージで書かれています。
&small(図版: by Emilien81 commons.wikimedia.org/wiki/File:WebSite-PHP_Schema_serveur.png);
-[[PHPとは>http://ja.wikipedia.org/wiki/PHP:_Hypertext_Preprocessor]] Wikipedia
-[[日本PHPユーザ会>http://www.php.gr.jp/]]
~
**はじめに
PHPを使ったWebサイトを構築するには、これまでの HTML+CSS+JavaScriptとは大きく異なる環境が必要になります。その違いを確認しておきましよう。
~
***http: アクセスが必要
HTML+CSS+JavaScript のみで構築された Webページの動作確認をするには、ブラウザのファイル>開く、あるいはファイルを直接ブラウザのウインドウにドラッグすればOKです。そのときページのアドレスは以下のようになります。
file:///home/・・・/sample.html
つまり ''file:'' ではじまって、あなたのPCの中の特定の場所を指し示します。
一方、PHPが含まれたWebアプリケーションの動作確認をする場合は、対象となるファイルを公開ディレクトリ(サーバーソフトが配信対象とする特定の場所)にアップロードしたうえで、ブラウザのURL入力欄からサーバーにアクセス(リクエスト)しなければなりません。
そのとき、そのアドレスは、以下のような書き方になります。
http://www.kyusan-u.ac.jp/・・・/sample.php
つまり、''http:'' ではじまるサーバー名・・・ファイル名を明記します。
サーバーがローカルPCつまりあなたのPC内で動いている場合も同じです。対象となるファイルを公開ディレクトリに置いたうえで、ブラウザのURL入力欄から localhost という名前のサーバにアクセスします。やはり ''http:''ではじまるアドレスを表記しなければなりません。
http://localhost/sample.php
~
***JavaScript vs PHP
JavaScriptとPHPの決定的な違いは、前者がクライアントサイドで動くもの、後者はサーバーサイドで動くもの、という点にあります。
-JavaScriptはクライアントサイドスクリプト、つまりブラウザが処理します。
→ ページをブラウザで開くだけで動作確認ができます。
-PHPはサーバーサイドスクリプト、つまりサーバーが処理します。
→ サーバー上のファイルをブラウザから呼ぶことで動作確認します。
~
~
**サーバー環境の準備
HTML、CSS、JavaScriptまでは、サンプルをそのままブラウザで開くことができましたが、ここで説明するPHPはサーバーサイドのスクリプト、つまりWebサーバー側で処理されてはじめて結果が見えるものとなります。したがって、PHPを含むWebサイトをデザインする場合は、その動作確認のために、サーバーを用意する必要があります。
''方法は2つ''
-大学のサーバーやレンタルサーバー(PHPの動作が認められているもの)を用意する。
-自分のPCにサーバーソフトをインストールして一人二役状態、つまりサーバーとブラウザを同時に動かす。
ということで…、外部サーバーにいちいちアップして動作確認するというのは能率が悪いので、とりあえず自分のPCにサーバソフトをインストールして実験環境をつくりましょう。ここではXAMPPというサーバーパッケージを紹介します。
XAMPP(ザンプ)とは、Webサーバーとして必要なソフトウェアをまとめたオープンソースのパッケージです。Apache(Webサーバ)、MySQL(SQLデータベースサーバ)、PHP、Perlの4つの主要ソフトウェアと管理ツールなどが含まれていて、このセットをインストールすることで、自分のPCを「PHPが動作するサーバー」として機能させることができます。
Webアプリ開発などの学習には最適のシステムですので、是非自分のPCにインストールして、使ってみて下さい。日本語の詳しい[[インストール解説(AdminWeb)>http://www.adminweb.jp/xampp/install/index2.html]]もあります。ライセンスGPLです。無料です。
XAMPP公式サイト>http://www.apachefriends.org/jp/xampp.html
''MacOSXをお使いの方へ''
[[XAMPP for Mac OSX>http://www.apachefriends.org/jp/xampp-macosx.html]]がリリースされています。同様のもので[[MAMP>http://www.mamp.info/en/index.html]]というのもあります。
''Linux(Ubuntu)''をお使いの方へ
[[XAMPP for Linux>http://www.apachefriends.org/jp/xampp-linux.html]]がリリースされています。マニュアルでセットアップしたい方は、アプリケーションメニューからApache2とPHP5をインストール。箕面市役所(ここはLinuxを使う公的機関です)那谷さんによる[[こちらの記事>http://blog.goo.ne.jp/minoh_edubuntu/e/1ad413c220f5dad97b59a1f54566ff61]]が参考になります。
~
~
**ローカルサーバーの動作確認
まずローカルサーバーの動作確認を行います。サーバーソフトの起動については、[[こちらの記事(AdminWeb)>http://www.adminweb.jp/xampp/install/index3.html]]が参考になります。。
-Apache
まずApache(HTTPD)の動作確認です。ブラウザのアドレスバーに以下のアドレスを直接入力してアクセスしてみて下さい。
http://localhost/
「It Works!」と表示されれば、サーバーは正常に動いています。
このとき、あなたのPCは、一人二役状態にあります。あなたのPC内のブラウザからの要求に対し、あなたのPC内のサーバーソフトが応答している…という状態です。
-PHP
次にPHPの動作確認です。
<?php echo phpinfo(); ?>
と一行だけ書いたファイルをtest.php という名前で保存して、ドキュメントルート(配信用のページを格納するフォルダ直下)に置いて下さい。
http://localhost/test.php
とアドレスを入力して、PHPの情報が表示されればPHPの動作もOKです。
~
~
**基本的な書き方と動作の仕組み
PHPのスクリプトは、HTMLのコードの中に ''<?php'' ではじまって、''?> ''で終わり…というパターンの''スクリプトデリミタ''((スクリプトデリミタ(script delimiter)とはスクリプトにおける開始と終了の合図を使って具体的なデータを埋め込むための仕組みです))を埋め込む形で書きます。で、ファイルの拡張子は .php とします。
phpを拡張子としたファイルが呼ばれると、サーバーはスクリプト部分をPHPの処理エンジンに渡します。結果が帰ってきたら(通常はHTMLソースコード)、それを元のファイルのスクリプト部分と置き換えて(つまりファイル全体は最終的にふつうのHTMLソースコードになる)、リクエスト元に送り出します。
~
では、サンプルを見てみましょう。
-[[PHP/Sample01]]
-[[PHP/Sample02]]
~
~
**PHPフレームワークについて
CSSやJavaScript同様、PHPにも著名なフレームワークがあります。フレームワークを導入するにはPHPそのものとは別の学習コストがかかりますが、本格的なチーム開発では、作業効率化のためにそれを採用するのが一般的です。
-[[Symfony>https://symfony.com/]](シンフォニー)[[Grav]]というCMSはこれを使っています。
-[[CakePHP>https://cakephp.org/jp]]ケイクピーエイチピー)
-zend framework(ゼンドフレームワーク)
-laravel(ララベル)
-codeigniter(コードイグナイター)
-FuelPHP(ヒューエルピーエイチピー)
-Phalcon(ファルコン)
~
~