プログラミング言語 PHPの歴史 http://pastport.jp/user/yandod/timeline/php-history 世界で使われるプログラミング言語PHPの歴史を紐解く ja-JP PHP 5.4.10 & PHP 5.3.20(2012年12月20日) <p>PHP5.3がライフサイクルの終わりに入る。今後はセキュリティFIXのみになりPHP5.4への移行が推奨される。</p> 2012-12-25T14:34:27+0900 http://pastport.jp/user/yandod/timeline/php-history/event/8Y9fcn1VveB yandod http://pastport.jp/user/yandod/timeline/php-history/event/8Y9fcn1VveB#comments http://pastport.jp/user/yandod/timeline/php-history/event/8Y9fcn1VveB PHP 5.4.9 & PHP 5.3.19(2012年11月22日) <p>バグFIXのリリース</p> 2012-12-25T14:33:00+0900 http://pastport.jp/user/yandod/timeline/php-history/event/tkiPbwkE9lQ yandod http://pastport.jp/user/yandod/timeline/php-history/event/tkiPbwkE9lQ#comments http://pastport.jp/user/yandod/timeline/php-history/event/tkiPbwkE9lQ PHP 5.5.0 Alpha1(2012年11月15日) <p>PHP5.5のリリースサイクルの最初のリリース。ジェネレーター、finallyなどの新機能をサポート</p> <p>PHP 5.5.0 Alpha 1 comes with new features such as (incomplete list) :</p> <p>support for Generators,<br /> a new password hashing API,<br /> support for finally in try/catch blocks<br /> support for list() in foreach,<br /> constant array/string dereferencing,<br /> ext/intl improvement.</p> 2012-12-25T14:32:13+0900 http://pastport.jp/user/yandod/timeline/php-history/event/3VuyarHEKek yandod http://pastport.jp/user/yandod/timeline/php-history/event/3VuyarHEKek#comments http://pastport.jp/user/yandod/timeline/php-history/event/3VuyarHEKek PHP 5.4.8 & PHP 5.3.18(2012年10月18日) <p>セキュリティとバグFIXのリリース</p> <p>Key enhancements in these releases include:</p> <p>Fixed bug #63111 (is_callable() lies for abstract static method)<br /> Fixed bug #61442 (exception threw in __autoload can not be catched)</p> 2012-12-25T14:29:15+0900 http://pastport.jp/user/yandod/timeline/php-history/event/8iToJ5EQ0gH yandod http://pastport.jp/user/yandod/timeline/php-history/event/8iToJ5EQ0gH#comments http://pastport.jp/user/yandod/timeline/php-history/event/8iToJ5EQ0gH PHP 5.4.7 & PHP 5.3.17(2012年09月13日) <p>セキュリティとバグFIXのリリース</p> <p>Key enhancements in these releases include:</p> <p>Fixed bug #62955 (Only one directive is loaded from "Per Directory Values" Windows registry).<br /> Fixed bug #62460 (php binaries installed as binary.dSYM).</p> 2012-12-25T14:27:59+0900 http://pastport.jp/user/yandod/timeline/php-history/event/LlYPn2k7yr1 yandod http://pastport.jp/user/yandod/timeline/php-history/event/LlYPn2k7yr1#comments http://pastport.jp/user/yandod/timeline/php-history/event/LlYPn2k7yr1 PHP 5.4.6 & PHP 5.3.16(2012年08月16日) <p>セキュリティとバグFIXのリリース</p> 2012-12-25T14:27:12+0900 http://pastport.jp/user/yandod/timeline/php-history/event/APJgehts3Pg yandod http://pastport.jp/user/yandod/timeline/php-history/event/APJgehts3Pg#comments http://pastport.jp/user/yandod/timeline/php-history/event/APJgehts3Pg PHP 5.4.5 & PHP 5.3.15(2012年07月19日) <p>セキュリティとバグFIXのリリース</p> 2012-12-25T14:26:12+0900 http://pastport.jp/user/yandod/timeline/php-history/event/gRl5mu3nRrG yandod http://pastport.jp/user/yandod/timeline/php-history/event/gRl5mu3nRrG#comments http://pastport.jp/user/yandod/timeline/php-history/event/gRl5mu3nRrG PHP 5.4.4 & PHP 5.3.14(2012年06月14日) <p>セキュリティFixのリリース。</p> <p>The release fixes multiple security issues: A weakness in the DES implementation of crypt and a heap overflow issue in the phar extension</p> <p>PHP 5.4.4 and PHP 5.3.14 fixes over 30 bugs. Please note that the use of php://fd streams is now restricted to the CLI SAPI</p> 2012-12-25T14:09:15+0900 http://pastport.jp/user/yandod/timeline/php-history/event/4tnPNZFxppg yandod http://pastport.jp/user/yandod/timeline/php-history/event/4tnPNZFxppg#comments http://pastport.jp/user/yandod/timeline/php-history/event/4tnPNZFxppg PHP 5.4.3 & PHP 5.3.13(2012年05月08日) <p>脆弱性に対する修正リリース。全てのユーザにアップデートが推奨される。</p> <p>The releases complete a fix for a vulnerability in CGI-based setups (CVE-2012-2311). Note: mod_php and php-fpm are not vulnerable to this attack.</p> <p>PHP 5.4.3 fixes a buffer overflow vulnerability in the apache_request_headers() (CVE-2012-2329). The PHP 5.3 series is not vulnerable to this issue.</p> 2012-12-25T14:07:51+0900 http://pastport.jp/user/yandod/timeline/php-history/event/CgZDoCwguI5 yandod http://pastport.jp/user/yandod/timeline/php-history/event/CgZDoCwguI5#comments http://pastport.jp/user/yandod/timeline/php-history/event/CgZDoCwguI5 PHP 5.3.12 & PHP 5.4.2(2012年05月03日) <p>CGIで稼働している場合の脆弱性に対する修正</p> <p>徳丸さんの詳しい解説<a href="http://blog.tokumaru.org/2012/05/php-cgi-remote-scripting-cve-2012-1823.html">http://blog.tokumaru.org/2012/05/php-cgi-remote-scripting-cve-2012-1823.html</a></p> 2012-12-25T14:05:52+0900 http://pastport.jp/user/yandod/timeline/php-history/event/WdVf2tnP14W yandod http://pastport.jp/user/yandod/timeline/php-history/event/WdVf2tnP14W#comments http://pastport.jp/user/yandod/timeline/php-history/event/WdVf2tnP14W PHP 5.3.11 & PHP 5.4.1(2012年04月26日) <p>安定性と不具合修正が中心のリリース</p> <p>Security Enhancements for both PHP 5.3.11 and PHP 5.4.1:</p> <p>Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172).<br /> Add open_basedir checks to readline_write_history and readline_read_history.<br /> Security Enhancement affecting PHP 5.3.11 only:</p> <p>Fixed bug #61043 (Regression in magic_quotes_gpc fix for CVE-2012-0831).<br /> Key enhancements in these releases include:</p> <p>Added debug info handler to DOM objects.<br /> Fixed bug #61172 (Add Apache 2.4 support).</p> 2012-12-25T14:03:20+0900 http://pastport.jp/user/yandod/timeline/php-history/event/ukQVwvpKlHD yandod http://pastport.jp/user/yandod/timeline/php-history/event/ukQVwvpKlHD#comments http://pastport.jp/user/yandod/timeline/php-history/event/ukQVwvpKlHD PHPの開発のGit移行完了(2012年03月20日) <p>SubversionからGitへの移行が完了。GitHubからプルリクエストでパッチが送れるように。<br /> <a href="http://www.php.net/archive/2012.php#id2012-03-20-1">http://www.php.net/archive/2012.php#id2012-03-20-1</a></p> 2012-12-25T13:58:14+0900 http://pastport.jp/user/yandod/timeline/php-history/event/xadBa6K9ocw yandod http://pastport.jp/user/yandod/timeline/php-history/event/xadBa6K9ocw#comments http://pastport.jp/user/yandod/timeline/php-history/event/xadBa6K9ocw PHP 5.3.10(2012年02月02日) <p>リモートコードが実行される脆弱性に対するFix</p> <p>Security Fixes in PHP 5.3.10:</p> <p>Fixed arbitrary remote code execution vulnerability reported by Stefan Esser, CVE-2012-0830.</p> 2012-12-25T13:55:37+0900 http://pastport.jp/user/yandod/timeline/php-history/event/rPxuMeGN54V yandod http://pastport.jp/user/yandod/timeline/php-history/event/rPxuMeGN54V#comments http://pastport.jp/user/yandod/timeline/php-history/event/rPxuMeGN54V PHP 5.3.9(2012年01月20日) <p>安定性とセキュリティフィックスが中心のリリース。</p> <p>Security Enhancements and Fixes in PHP 5.3.9:</p> <p>Added max_input_vars directive to prevent attacks based on hash collisions. (CVE-2011-4885)<br /> Fixed bug #60150 (Integer overflow during the parsing of invalid exif header). (CVE-2011-4566)<br /> Key enhancements in PHP 5.3.9 include:</p> <p>Fixed bug #55475 (is_a() triggers autoloader, new optional 3rd argument to is_a and is_subclass_of).<br /> Fixed bug #55609 (mysqlnd cannot be built shared)<br /> Many changes to the FPM SAPI module</p> 2012-12-25T13:54:20+0900 http://pastport.jp/user/yandod/timeline/php-history/event/5DxjoQ00Ajd yandod http://pastport.jp/user/yandod/timeline/php-history/event/5DxjoQ00Ajd#comments http://pastport.jp/user/yandod/timeline/php-history/event/5DxjoQ00Ajd PHP4.0.6(2001年06月) <p>日本語を扱えるmbstringが標準添付されるように。</p> 2012-09-07T14:05:59+0900 http://pastport.jp/user/yandod/timeline/php-history/event/vNqIzfMlakv yandod http://pastport.jp/user/yandod/timeline/php-history/event/vNqIzfMlakv#comments http://pastport.jp/user/yandod/timeline/php-history/event/vNqIzfMlakv PHP4.2.0(2002年04月) <p>register_globalsがデフォルトでオフに。</p> 2012-09-07T13:53:34+0900 http://pastport.jp/user/yandod/timeline/php-history/event/oPFwKkz9lpp yandod http://pastport.jp/user/yandod/timeline/php-history/event/oPFwKkz9lpp#comments http://pastport.jp/user/yandod/timeline/php-history/event/oPFwKkz9lpp PHP4.1.0(2001年12月) <p>$_GET $_POST などのスーパーグローバル変数の導入</p> 2012-09-07T13:50:48+0900 http://pastport.jp/user/yandod/timeline/php-history/event/ypRJnsRIBNL yandod http://pastport.jp/user/yandod/timeline/php-history/event/ypRJnsRIBNL#comments http://pastport.jp/user/yandod/timeline/php-history/event/ypRJnsRIBNL PHP6の開発断念(2010年03月) <p>Unicode対応に取り組んできたPHP6の実装が行き詰まった為、最新のソースコードからこの部分を削除し、PHP5.3として開発する事がアナウンスされた。その後の次期バージョンがPHP5.4になるのかPHP6になるのかはこの時点では未定。</p> 2012-09-07T13:23:09+0900 http://pastport.jp/user/yandod/timeline/php-history/event/UUxlmhNMYYb yandod http://pastport.jp/user/yandod/timeline/php-history/event/UUxlmhNMYYb#comments http://pastport.jp/user/yandod/timeline/php-history/event/UUxlmhNMYYb PHP5.4.0(2012年03月01日) <p>トレイト、Array Short Syntax、組み込みWebサーバ機能が追加された。パフォーマンスが更に向上。</p> 2012-09-07T13:16:37+0900 http://pastport.jp/user/yandod/timeline/php-history/event/mpRSEgoImVg yandod http://pastport.jp/user/yandod/timeline/php-history/event/mpRSEgoImVg#comments http://pastport.jp/user/yandod/timeline/php-history/event/mpRSEgoImVg PHP5.3.0(2010年06月) <p>名前空間、無名関数、遅延静的束縛などの機能が導入される。</p> 2012-09-07T13:15:41+0900 http://pastport.jp/user/yandod/timeline/php-history/event/Y5x8GvSMKfO yandod http://pastport.jp/user/yandod/timeline/php-history/event/Y5x8GvSMKfO#comments http://pastport.jp/user/yandod/timeline/php-history/event/Y5x8GvSMKfO PHP5.2.0(2006年11月) 2012-09-07T13:13:42+0900 http://pastport.jp/user/yandod/timeline/php-history/event/9lxsR855e8d yandod http://pastport.jp/user/yandod/timeline/php-history/event/9lxsR855e8d#comments http://pastport.jp/user/yandod/timeline/php-history/event/9lxsR855e8d PHP5.1.0(2005年11月) 2012-09-07T13:13:16+0900 http://pastport.jp/user/yandod/timeline/php-history/event/RYiu2I4o2dg yandod http://pastport.jp/user/yandod/timeline/php-history/event/RYiu2I4o2dg#comments http://pastport.jp/user/yandod/timeline/php-history/event/RYiu2I4o2dg PHP5(2004年07月) <p>PHP 5は長期にわたる開発とプレリリースを経て2004年7月に公開されました。 改良の目玉は、コアである Zend Engine 2.0 で新しいオブジェクトモデルがサポートされたことで、 その他にも多くの新しい機能が追加されています。</p> <p>PHP の開発チームは数十名の開発者で構成されています。 それ以外にも、何十名もの人たちが関連プロジェクトやサポートなどにかかわっています。 たとえば PEAR や PECL、そしてドキュメンテーション、 さらにはネットワーク基盤の管理などです。 PHP のネットワーク基盤は 100 を軽く上回るウェブサーバーで構成されており、 世界の七大陸のうちの六つにまたがっています。 ここ数年の統計情報に基づいて見積もると、 PHP は今や世界中の何千万から何億ものドメインに導入されていると言っても過言ではありません。</p> 2012-09-07T12:26:14+0900 http://pastport.jp/user/yandod/timeline/php-history/event/4tKsQyLPAbz yandod http://pastport.jp/user/yandod/timeline/php-history/event/4tKsQyLPAbz#comments http://pastport.jp/user/yandod/timeline/php-history/event/4tKsQyLPAbz PHP4(2000年05月) <p>PHP 3.0が公式にリリースされて間もない1998年の冬、Andi Gutmans とZeev SuraskiはPHPの核となる部分を書き直し始めました。この 目的は、複雑なアプリケーションにおけるパフォーマンスの改善と PHPコードのモジュールとしての独立性を高めることでした。 そういったアプリケーションはPHP 3.0の新機能や第三者による 多くのデータベースやAPIのサポートを使用することで開発可能 でしたが、PHP 3.0はそういった複雑なアプリケーションを効率的に 扱うようにはデザインされていませんでした。</p> <p>'Zend Engine'と呼ばれる新しいエンジン(開発者であるZeevとAndi の名前の組み合わせ)は、彼らの目的を十分に果たすものでした。 そしてそれは1999年中ごろに初めて紹介されました。このエンジンを 使用し、いくつかの広範囲にわたる新機能を追加したPHP 4.0は 前のバージョンのおよそ2年後となる2000年5月にリリースされました。 PHP 4.0はパフォーマンスが大幅に改善されたのに加え、 さらに多くのウェブサーバーのサポート、HTTPセッション、 出力のバッファリング、ユーザーの入力のさらに安全な取得方法の 提供、いくつかの新しい言語構造の提供といった特徴があります。</p> 2012-09-07T12:25:16+0900 http://pastport.jp/user/yandod/timeline/php-history/event/5JhNmKX5gyn yandod http://pastport.jp/user/yandod/timeline/php-history/event/5JhNmKX5gyn#comments http://pastport.jp/user/yandod/timeline/php-history/event/5JhNmKX5gyn PHP3.0発表(1998年06月) <p>PHP 3.0 は、現存する PHP に近い状態になった最初のバージョンです。 PHP/FI 2.0 ではまだ力不足で、自分たちが大学のプロジェクトで作っている eコマースアプリケーションを構築するには機能が足りないと気づいたのは イスラエルのテルアビブにいた Andi Gutmans と Zeev Suraski でした。彼らは 1997 年に、 PHP/FI の裏にあるパーサーを新たに書き直そうとし始めました。 Rasmus をオンラインで捕まえた彼らは、PHP の現在の実装や自分たちがそれをどう作り直そうとしているのかについて議論しました。 現在のエンジンを改善させ、既存の PHP/FI のユーザーも守るために、 Andi と Rasmus、そして Zeev は協力して新たなプログラミング言語を作ることにしました。 この全く新しい言語は新しい名前でリリースされました。PHP/FI 2.0 の名前が持っていた「個人向け」というイメージをなくすためにです。 新しい名前は、シンプルに「PHP」。「PHP: Hypertext Preprocessor」 の頭文字をとったものです。</p> <p>PHP 3.0 の最も強力な点は、その拡張性でした。 さまざまなデータベースやプロトコル、そして API を扱うための成熟したインターフェイスをユーザー向けに用意しただけでなく、 その言語自身も拡張しやすいものにしました。 そのおかげで、多くの開発者がさまざまなモジュールを開発するようになりました。 間違いなく、これこそが PHP 3.0 が大成功を収めた鍵でしょう。 PHP 3.0 で登場したその他の主要機能には、 オブジェクト指向プログラミングのサポートやより強力で一貫性のある言語構文などがあります。</p> <p>1998 年 6 月、世界中から新たな開発者が多く参入した PHP Development Team は、PHP/FI 2.0 の正式な後継として PHP 3.0 をアナウンスしました。 アクティブな開発が続いていた PHP/FI 2.0 は前年の 11 月に開発が止まっていましたが、 ここで始めて公式に終了宣言が出たのです。約 9 か月の公開テストを経て PHP 3.0 が公式にリリースされたときには、既に世界中の 70,000 以上のドメインに PHP がインストールされていました。さらに、その環境は POSIX 準拠の OS にとどまりませんでした。 比較的少数ではあるものの、PHP がインストールされているとされるドメインの中には Windows 95 や 98 そして NT、あるいは Macintosh でサーバーが動いているところもあったのです。 最盛期には、インターネット上のウェブサーバーのほぼ 10% に PHP 3.0 がインストールされていました。</p> 2012-09-07T12:23:23+0900 http://pastport.jp/user/yandod/timeline/php-history/event/SVAaRkPXXAe yandod http://pastport.jp/user/yandod/timeline/php-history/event/SVAaRkPXXAe#comments http://pastport.jp/user/yandod/timeline/php-history/event/SVAaRkPXXAe 60,000のドメインに"PHP"が導入される(1998年05月) <p>開発期間は短かったものの、PHP/FI は初期のウェブ開発業界での勢力を拡大し続けました。 1997 年から 1998 年にかけて、PHP/FI は世界中の数千人のマニアに使われていました。 1998 年 5 月の Netcraft の調査によると、およそ 60,000 のドメインがヘッダに "PHP" の文字を含めていたそうです。これは、そのサーバーに実際に PHP/FI がインストールされていたことを意味します。この数字は、当時のインターネット上の全ドメインの およそ 1% にあたるものでした。 これらの実績にもかかわらず、PHP/FI に円熟期が来ることはとても望めませんでした。 ちょっとした貢献をしてくれる人は何人かいたものの、 基本的には個人で開発している状態が続いていたのです。</p> 2012-09-07T12:20:24+0900 http://pastport.jp/user/yandod/timeline/php-history/event/r0POszORQz4 yandod http://pastport.jp/user/yandod/timeline/php-history/event/r0POszORQz4#comments http://pastport.jp/user/yandod/timeline/php-history/event/r0POszORQz4 PHP/FI 2.0(1997年11月) <p>その年の 6 月に、PHP/FI のバージョンは 2.0 になりました。 興味深いことに、PHP 2.0 の完全なバージョンとして出されたものはこれだけでした。 最終的にベータ状態を卒業したのは 1997 年 11 月のことでしたが、 そのころには裏にあるパースエンジンは完全に書き直されていました。</p> 2012-09-07T12:19:21+0900 http://pastport.jp/user/yandod/timeline/php-history/event/zUJVj8mqv4T yandod http://pastport.jp/user/yandod/timeline/php-history/event/zUJVj8mqv4T#comments http://pastport.jp/user/yandod/timeline/php-history/event/zUJVj8mqv4T PHP/FI(1996年04月) <p>コードはさらに一から書き直され、1996 年の 4 月には過去のリリースの名前を組み合わせた PHP/FI という名前で公開されました。この第二世代の実装で、 PHP は単なるツール群からプログラミング言語へと進化を遂げたのです。 DBM や mSQL そして Postgres95 などのデータベース、 クッキー、ユーザー定義関数などのサポートが組み込まれました。</p> 2012-09-07T12:14:16+0900 http://pastport.jp/user/yandod/timeline/php-history/event/8RGVWpEwzcI yandod http://pastport.jp/user/yandod/timeline/php-history/event/8RGVWpEwzcI#comments http://pastport.jp/user/yandod/timeline/php-history/event/8RGVWpEwzcI Personal Home Page Construction Kit(1995年10月) <p>翌月の 1995 年 10 月から状況は変わり始めました。 Rasmus が、コードを完全に書き直した版をリリースしたのです。 再び PHP の名前がつき、こんどは「Personal Home Page Construction Kit」 とう名前になりました。これは、当時としてはかなり進んだスクリプトインターフェイスを持っていました。 その言語は意図的に C の構文に似せて作られ、C や Perl などを知っている人たちが移行しやすいようにしてありました。 この時点ではまだ UNIX や POSIX 準拠のシステムにしか対応していませんでしたが、 Windows NT 上での実装も検討されていました。</p> 2012-09-07T12:12:09+0900 http://pastport.jp/user/yandod/timeline/php-history/event/cwqRuNrKnOt yandod http://pastport.jp/user/yandod/timeline/php-history/event/cwqRuNrKnOt#comments http://pastport.jp/user/yandod/timeline/php-history/event/cwqRuNrKnOt Forms Interpreter(1995年09月) <p>同じ年の 9 月、Rasmus は PHP をさらに発展させ、短期間ですが PHP の看板を外しました。新しいツールの名前は FI ("Forms Interpreter" の略) となり、 この実装には現在の PHP の基本機能のいくつかが含まれていました。 Perl 風の変数、そしてフォーム変数の自動取得、HTML に埋め込める構文などです。 構文は Perl と似ていましたが、より制限されたシンプルなもので、 どこか一貫性に欠けるものでした。 実際、コードを HTML ファイルに埋め込むには HTML のコメントを使う必要がありました。 このやり方を誰もが気に入ったというわけではありませんでしたが、 FI はその後も成長を続け、CGI ツールとしての立場を固めていきました。 とは言え、未だに言語というにはほど遠い状態です。</p> 2012-09-07T12:08:43+0900 http://pastport.jp/user/yandod/timeline/php-history/event/6vL5ZnupXb2 yandod http://pastport.jp/user/yandod/timeline/php-history/event/6vL5ZnupXb2#comments http://pastport.jp/user/yandod/timeline/php-history/event/6vL5ZnupXb2 Personal Home Page Tools(1995年06月) <p>1994 年に Rasmus Lerdorf が生み出したいちばん最初の PHP はシンプルな CGI バイナリ群で、C 言語で書かれていました。 元々は彼がオンラインで公開している経歴書のアクセス履歴を調べるために使われていましたが、 彼はそのスクリプト群を「Personal Home Page Tools」と名付けました。「PHP Tools」 と略されることが多かったようです。時を経て、さまざまな機能追加の要望が出てきたところで、 Rasmus は PHP Tools を書き直しました。より大規模でリッチな実装にしたのです。 このニューモデルはデータベースも扱えるようになり、 一種のフレームワークとして使えるようになったのです。 ユーザーは、これを使って掲示板のようなシンプルな動的ウェブアプリケーションを作れるようになりました。 1995 年 6 月、Rasmus は PHP Tools のソースコードを公開 しました。</p> 2012-09-07T12:00:24+0900 http://pastport.jp/user/yandod/timeline/php-history/event/g0QjptGXUcx yandod http://pastport.jp/user/yandod/timeline/php-history/event/g0QjptGXUcx#comments http://pastport.jp/user/yandod/timeline/php-history/event/g0QjptGXUcx