PHP
「PHP」とは・「PHP」の意味
PHPとはItにおけるプログラミング言語のひとつ、あるいは歯科における歯の染色状態を基準にした、口腔内の清掃状態を評価する手段などである。ItにおけるPHPは、プログラマであるラスマス・ラードフがC言語をベースに開発したPHP/ifを起源とするもので、ラードフ自身のwebサイトで動的webページを作成するために作られたとされる。1995年にオープンソースライセンスの下に公開された後、世界中のプログラマが利用し始め、1997年に「PHP 3.0」が生まれ、PHPという言語として完成した。2000年に「PHP 4.0」、2004年には「PHP 5.0」へのバージョンアップが行われ、現代にいたるまで利用され続けている。
開発経緯が示す通り、PHPはwebページの生成を目的として生まれたプログラミング言語である。web開発に適しているため、It技術者の中でもweb関係のエンジニア・プログラマの利用率が高い。webページの基本はHTMLというマークアップ言語で構成されるが、PHPはこのHTMLにコードを追加することで動作できる。また、クライアントサイドで動作するJavaスクリプトとは異なり、サーバサイドでコードが処理され、クライアント側はその結果を受け取る流れになるため、処理が高速になるというメリットがある。更に、コードの内容が分かりやすいため、プログラミング初心者にとっての習得難易度が比較的低い一方、ハイレベルなプログラマが使いこなすに相応しい多機能性も兼ね備えている。
PHPのデメリットとしては、PHPはwebページの生成に特化しており、汎用性が低い。他の言語のように、パソコンやスマートフォンで動作するソフトウェアやアプリの開発や、家電製品の制御プログラムを作るようなことは難しい。また、コード記述の自由度が高いため、エンジニアによってコードのクセが発生しやすく、メンテナンスの難易度が跳ね上がる・バグの発生率が高まるといったトラブルを招きやすい。なお、チーム内で複数人がプログラムする際は、最初に記述方式などのルールを制定しておくことでこういったトラブルを回避しやすくなる。
歯科におけるPHPは、正式名称「Patient Hygiene Performance」と言い、歯垢の付着具合を評価するものである。歯垢に反応する薬品で染め出し、特定の歯の断面を五分割して、それぞれの染色部位数を全て足し、その後、検査対象となった断面の数の総和で割ることで、スコアを算出する。これにより、患者が適切にブラッシングができているか、などの判定に用いることができる。同じような目的で行われる検査としてはOHIやPCRなどがある。
また、PHPという単語は、株式会社PHP研究所という出版業を主軸にした企業名にも用いられている。社名になっているPHPは経営目標・理念に基づいた英文の略称のため、itや歯科との関連性はない。ビジネス・哲学・児童文学など様々な分野の書籍を手掛けており、年間出版数も多い。
「PHP」の読み方
itにおけるPHP(ピーエイチピー)の正式名称は、「Hypertext Preprocessor(ハイパーテキスト・プリプロセッサ)」である。PHPのルーツであるラスマス・ラードフが開発したツールは、「PHP Tools(Personal Home Page Tools)」と呼ばれていたが、開発を経る間に別の名称に変わっていった。その後、現在のPHPの完成系である「PHP 3.0」が生まれた時、再帰的頭字語に基づいて「Hypertext Preprocessor(略称:PHP)」になったとされる。歯科におけるPHPは、「Patient Hygiene Performance(ペイシェントハイジーンパフォーマンス)」。また、株式会社PHP研究所の名前は「Peace and Happiness through Prosperity(繁栄によって平和と幸福を)」という英文の略称であり、(ピースアンドハピネススループロスペリティ)と読む。
「PHP」の熟語・言い回し
PHP研究所とは
株式会社PHP研究所は、パナソニック創業者である松下幸之助が創立した企業「株式会社PHP総合研究所」が、子会社である「株式会社PHP研究所」を吸収合併した際に改正して生まれた企業である。かつては総合シンクタンク業をメインとしていたが合併後の中心事業は出版業となっている。itのPHPと関係はなく、株式会社PHP研究所の名前の由来は「Peace and Happiness through Prosperity(繁栄によって平和と幸福を)」という英文の略称である。この英文は創業者・松下幸之助が提唱する理念で、「物と心の両面が調和した形で進歩していくことが望ましい」、また「人にはそのような調和・平和を実現する力がある」とする考え方に基づく。PHP研究所の経営目標は、この理念を普及させることにあり、一般的な企業における「営業部・販売部」は「普及部」と呼ばれるなどの特徴がある。
PHP出版とは
前述のPHP研究所が出版する書籍類の総称として使われることがあるが、正式な社名はPHP研究所である。同社が手掛ける刊行物として有名なものは「PHP文庫」「PHP新書」「PHPジュニアノベル」「ゆうれいシリーズ」「月間PHP」などがあげられる。年間の出版点数は600を超え、ビジネス分野や哲学、雑誌、児童文学まで幅広く手掛けている。
ピュア PHPとは
ピュアPHPとは「フレームワークなしで書かれたPHP」を意味する。フレームワークとは、PHPを用いた開発に必要な機能などをひとまとめにした、プログラムの塊のようなものである。最初からコードをかく必要がなくなるため、開発にかかる費用や時間を減らすことができる他、基礎が完成しているのでプログラム経験が低い人でも作業しやすいというメリットがある。一方、フレームワークを使いこなすための学習の必要性や、フレームワークが提供していない機能は実装しなければならないこと、更にフレームワークに沿ってプログラミングができるゆえに個人の技術力・知識が向上しない可能性がある、といったデメリットもあるため、ピュアPHPによる開発が重要視されることもある。
index PHPとは
index(インデックス)とは「索引・見出し」「指数・指標」を意味する英単語で、web業界においては、googleなどの検索エンジンに該当のwebページが索引データとして登録されることを意味する。その結果、webページと関連が深いキーワードが検索された時、検索結果に該当のwebページが表示されるようになる。このようにindexという名称は、itおよびwebにおいては非常に重要な意味を持つ。そのような考え方から派生して、PHPで作られたコンテンツマネジメントスキル(CMS)であるWordPressによって生成されるwebページにおいても、index.PHPというファイルがなければならない。ページ構成を自由にカスタマイズできるWordPressにおいて、index.PHPは「該当するデータが他にない場合に、参照するファイル」として組み込む必要がある。
cake PHPとは
cake PHPはPHP言語のフレームワークの一つであり、これを利用することでより簡単にWebアプリケーションやWebページを作成することができるようになる。オンラインの会員サイトや通販サイト、コミュニケーションツールであるグループウェアなどの開発をする場合に用いられやすい。名称の「cake」とはすなわちスイーツの「ケーキ」のことであり、「ケーキを焼くように手軽に開発ができる」という意味が名前の由来となっている。公式において「より速く、より強く、より美味しく」といったキャッチフレーズが用いられている通り、高速化も大きな特徴の一つであるが、これは別のフレームワーク「Ruby on Rails」の持つ高速化の概念を取り入れて実現しているものとされる。2005年3月に生まれたこのフレームワークは世界的にもシェアが高く、日本ではトップクラスの利用率を誇っている。
同じくPHPのフレームワークとして高いシェアを誇るものとして「Laravel(ララベル)」がある。cake PHPは素早くシンプルな開発が可能になり、Laravelは自由度の高さと共に、バージョンアップが早く最新の技術を取り入れた開発が容易にできるといった違いがあるので、自分の求める方針に基づいて利用することが望ましい。
ピー‐エッチ‐ピー【PHP】
PHP
PHP
PHP Development Teamによって開発されているスクリプト言語。
独自の「PHPライセンス」によって配布されるオープンソースソフトウェア。LAMPの1つに挙げられるように、オープンソース製品でWebアプリケーションを構築する際の定番。XOOPSやオープンソースのECサイト構築システムosCommerceなど、PHPで書かれたアプリケーションも数多い。
Perlと同様に、もともとは手続き型言語だったが、バージョンアップの際にオブジェクト指向言語の機能を追加してきている。HTML内にスクリプトを埋め込む形でプログラムを記述することができるので、Webアプリケーションで動的にHTMLを生成する処理を簡単に記述することができる。主要データベースへアクセスのためのモジュールが標準状態で同梱されているなど、Webアプリケーションを素早く書き始められるよう工夫されている。
関連見出し
LAMP
XOOPS
Perl
関連URL
PHP: Hypertext Preprocessor(http://www.php.net/)
PHP ピー・エイチ・ピー
PHP
読み方:ピーエイチピー
別名:Personal Home Page
PHPとは、スクリプト言語の一種で、サーバーサイドで動作し、HTMLの文書内に統合される形で記述されることを特徴とするプログラミング言語のことである。動的なWebページを生成するために用いられる。
PHPのプログラムは、HTML内にPHP用の要素を示す特別のタグを設けて、その中に記述される。通常PHPプログラムを含むファイルは、拡張子に「.php」が付けられる。ファイルの実行時には、クライアントに出力される前にWebサーバー上で処理される。PHPのインタプリタは、Apacheのモジュール(mod_php5など)として組み込まれ、Apacheと一体になって実行されるため、CGIの実行によるサーバーサイドプログラムよりも高速である。PHPは、JavaやC言語、C++と類似の構文を持っている。変数定義、関数定義、クラス定義、継承、例外処理などが実行可能である。
PHPは、HTMLの中にスクリプトを埋め込む形で用いることができ、それ自体が「テンプレート」でもあるため、簡単に使うことができる。フォームデータなどのHTTP要求を簡単に解析できる仕組み、MySQLやPostgreSQLとの接続、PDFの生成など、利用頻度の高そうな機能が標準レベルで多数組み込まれている。小規模な会員データや商品データを格納するデータベースとそのデータを検索したり表示したりするWebデータベースシステムのような小規模な動的サイトであれば、PHPを用いて迅速に構築することができる。また、オブジェクト指向の機能や、アプリケーションフレームワークを活用することにより、ある程度の大規模な開発にも対応できる。このような特徴により、PHPは多くのWebアプリケーション開発者から支持を得、多くのWebサイトで採用されている。
PHPは、1995年にRasmus Lerdorfが。自分のホームページを生成するために「PHP/FI」(Personal Home Page/Forms Interpreter)と呼ばれるPerlモジュールを作成したことから始まったとされる。その後エンジン部分がC言語で書き直され、大幅に性能が向上した。1998年にPHP 3.0が発表され、機能が大幅に強化され、急速に普及した。2000年には、PHP 4.0が発表され、基本的なオブジェクト指向プログラミング機能が追加された。2004年には、オブジェクト指向機能が本格的に整備され、PHP 5.0が発表された。PHPのオブジェクト機能は、単一継承やカプセル化が利用でき、Java同様のtry catch構文による例外処理も可能となっている。なお、PHP 4.0からは、Zend社が作成したZendエンジンがコアに採用され、インタープリタの性能が大幅に改善されている。
PHPの正式名は、当初「Personal Home Page Tools」であったが、その後「PHP Hypertext Preprocessor」という再帰的頭字語が与えられた。
PHPには、PEARのライブラリ群、mojavi、Ethna、symfony、CakePHP、CodeIgniter、ZendFrameworkなどのWebアプリケーションを効率的に構築できるフレームワークや、Smartyのようなテンプレートエンジンなど多数の外部ライブラリが存在している。JavaのStrutsのようなMVCモデルや、Ruby On RailsのようなRAD(Rapid Application Development)を利用した開発が可能となっている。また、PHPには、コマンドライン版も存在しており、これによりシェル上でも実行できるため、PerlやRubyのような使い方も可能である。またWindowsやMac OSなどのUNIX以外のプラットフォームでも利用可能である。
参照リンク
PHP: Hypertext Preprocessor
日本 PHP ユーザ会 (Japan PHP Users Group) :: メイン
PHP / Java の連携
導入
PHP と Java の連携をとして考えられる手段は 2 種類あります。 PHP を Java サーブレット環境に統合する方法 と Java サポートを PHP に統合する方法です。前者のほうが より安定で効率的な手法です。前者は、サーブレットサーバへのインターフェイス として SAPI モジュールにより提供され、後者は Java 拡張モジュール として提供されます。Java 拡張モジュールは、PHP から Java オブジェクトのメソッドを生成し、 コールする簡単で効率的な手段を提供します。この JVM は JNI を用いて 作成され、全てはこのプロセスで動作します。
警告 |
この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。 |
要件
この拡張モジュールを使用するには、使用するマシンに Java VM が インストールされていることが必要です。インストール手順
この » PECL 拡張 モジュールは PHP にバンドルされていません。PHP 4 の場合、この PECL 拡張モジュール のソースは、PHP のソースの ext/ ディレクトリ、または 上の PECL リンクで入手可能です。 これらの関数を使用するには --with-java[=DIR] を使用して Java サポートつきで PHP をコンパイルする必要があります。 DIR は JDK のインストールディレクトリを指します。この拡張モジュールは 共有モジュールとしてのみビルド可能です。詳細な情報は php-src/ext/java/README にあります。
Windows ユーザがこれらの関数を使用するには、php.ini 内で php_java.dll を有効にします。 PHP 4 の場合、この DLL は PHP の Windows ダウンロードバイナリの extensions/ ディレクトリ にあります。 この PECL 拡張モジュール の DLL を » PHP ダウンロード ページ または » http://snaps.php.net/ からダウンロードできます。
注意: Windows 環境において PHP <= 4.0.6 を使用してこのモジュールを有効に するには、jvm.dll をシステムの PATH が通った場所に おく必要があります。PHP > 4.0.6 では、追加の DLL は必要ありません。
実行時設定
php.ini の設定により動作が変化します。表 143. Java 設定オプション
名前 | デフォルト | 変更の可否 | 変更履歴 |
---|---|---|---|
java.class.path | NULL | PHP_INI_ALL | |
java.home | NULL | PHP_INI_ALL | |
java.library.path | NULL | PHP_INI_ALL | |
java.library | JAVALIB | PHP_INI_ALL |
PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。
リソース型
リソース型は定義されていません。定義済み定数
定数は定義されていません。例
例 1000. Java の例 <?php
// Java クラス java.lang.System のインスタンスをPHPに作成する
$system = new Java('java.lang.System');
// プロパティへのアクセスのデモ
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br />';
// java.util.Dateの例
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter->format(new Java('java.util.Date'));
?>
例 1001. AWT の例
<?php
// この例は、CGI として実行されることのみを考慮しています。
$frame = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');
$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;
$thread = new Java('java.lang.Thread');
$thread->sleep(10000);
$frame->dispose();
?>
注意:
- new Java() は、有効なコンストラクタがある場合、 クラスのインスタンスを生成します。引数が指定されない場合には、 デフォルトのコンストラクタにより java.lang.Systemのようなクラスにアクセスすると 良いでしょう。このクラスは、ほとんどの機能を静的なメソッドとして 公開しています。
- あるインスタンスのメンバーにアクセスする際には、まず bean プロパティ が探されてから、次に public フィールドが探されます。言い換えると、 print $date.time はまず $date.getTime() と解釈され、続いて $date.time と解釈されます。
- 静的メンバおよびインスタンスメンバは共に同じ構文でアクセス可能です。 さらに、java オブジェクトが java.lang.Class 型の 場合、このクラスの静的メンバ(フィールドとメソッド)にアクセス可能です。
- 例外が発生すると PHP の警告が出力され、結果は NULL となります。警告は "@" 記号を付けてメソッドをコールすることに抑圧できます。 直近のエラーを取得し、リセットするために以下の API を使用することができます。
- オーバーロードの解決は、二つの言語の間で型の違いがあるため一般には 困難な問題です。PHP の Java 拡張機能は、どのオーバーロードが 最も一致するかを定義するための方法として、簡単ですがかなり 効率的なものを使用しています。
加えて、PHP のメソッド名は大文字小文字を区別しないため、選択される オーバーロードの数は増加する傾向があります。
メソッドが一度選択されると、パラメータの値は必要に応じて調整されます。 このため、(倍精度実数が論理値に変換されるといった)データの劣化が 発生する可能性があります。 - PHP では伝統的に配列とハッシュテーブルは相互に完全に可換でした。PHP の ハッシュテーブルは整数または文字列の添字のみを使用できることに注意して ください。また、Java の primitive 型の配列は疎とすることができないことに も注意してください。これらの構造は値で渡されるため、メモリと時間の 消費量が大きくする可能性があります。
Java Servlet SAPI
Java Servlet SAPI は、PHP プロセッサ全体をサーブレットとして実行する ために、Java 拡張モジュールにより定義された機構の上に構築されています。 PHP の側からみてこの実装が基本的に優れている点は、サーブレットを サポートする Web サーバが通常 JVM をプールし、再利用することに注力している ことです。このサーブレット SAPI モジュールの構築手順は、 php4/sapi/README にあります。 注意:- このコードは、全てのサーブレットエンジンで実行可能であるように作成 されていますが、現在 Apache の Jakarta/tomcat でしかテストされていません。 他のエンジンでこのコードを実行する際に必要なパッチ、バグレポート、 成功事例等をお知らせください。
- PHP は動作ディレクトリを変更する特徴があります。sapi/サーブレット はもとに戻そうとしますが、PHP が実行されている間、サーブレットエンジンは CLASSPATH に相対ディレクトリにより指定されている全てのクラスを ロードできないか、管理用および JSP コンパイル用に使用されている 作業ディレクトリを見つけることができなくなる可能性があります。
目次
- java_last_exception_clear — 直近の例外をクリアする
- java_last_exception_get — 直近の Java 例外を取得する
PHP
輸入自動車特別取扱い制度。クルマの輸入を促進するために設けられた、日本の認証制度のひとつで、年間販売台数が2000台以下の型式の輸入車にのみ適用される制度をいう。申請書類も大幅に簡素化され、保安基準への適合性は書面審査のみで認証車の提示は不要である。ただしクルマの登録時に現車を陸運支局などに提示し、検査を受ける必要がある。
参照 自動車認可制度Weblioカテゴリー/辞書と一致するものが見つかりました。
- PHP用語集 - PHPプロ!
- PHPのページへのリンク