6 月 30 日、PHP.net はリリース バージョン 5.3.0 をリリースしました。
注目する時間がなかったので、今日は、待望の名前空間のサポートなど、多くの意味のある新機能が追加されたことを確認しました。
当初これは PHP6 で実装されるだろうと思っていましたが、5.3.0 で追加されるとは予想していませんでした。 PHP6 より前の 5.3.0 は確かに注目に値するバージョンでした。
注目に値する機能の簡単なリストについては、ChangeLog (http://www.php.net/ChangeLog-5.php#5.3.0) を参照してください。
さらに、PHP チームは、 5.2.x プロジェクトを 5.3.0 に移行する方法については、http://www.php.net/migration53 を参照してください。Linux 環境がないため、Win 環境でのみ分析できます。ぜひご利用ください。 。
Mysqlnd は、PHP オープンソース プロトコルを採用し、著作権紛争を回避し、PHP 内に配置されます。慎重に比較すると、Windows バージョン 5.3.0 には libmysql.dll ファイルが存在しないことがわかります。これは、mysqlnd ドライバーが使用されているためであり、外部ドライバー libmysql.dll が存在する必要はありません。 mysqlnd ドライバーを使用しても、mysql または mysqli の使用方法は変わりませんが、パフォーマンスがいくらか向上します。
IIS で PHP 5.3.0 を使用する場合、以前のように IIS の php5isapi.dll に .php 拡張子を追加できなくなります。したがって、IIS で PHP 5.3.0 を使用するには、CGI と Fast-CGI の 2 つのオプションしかありません。今では昔ながらの CGI の使い方を知っている人はいないので、Fast-CGI しか使えません。
1) IISのCGI機能をオンにする
コントロールパネルを開き、[プログラム] - Windowsの機能のオン/オフを切り替えます。 、インターネット インフォメーション サービス - World Wide Web サービス - アプリケーション開発機能 - CGI をオンにします (この選択ボックスをオンにすると、CGI と FastCgi の両方の機能が開きます)
2) PHP 5.3.0 サポートを追加します
IIS マネージャーを開き、サーバー (すべての Web サイトに適用) または特定のサイト (単一のサイトに適用) を選択します。 [ハンドラー マッピング] オプションを選択すると、すべてのプログラム マッピングがリストされます。右側の「モジュール マッピングの追加」を選択します。次に、パスを *.php として入力し (他の拡張子を処理したい場合は、順番に追加してください)、モジュールとして FastCgiModule を選択し、実行可能ファイルとして PHP 5.3.0 の php-cgi.exe を選択します。さらに設定が必要な場合は、「制限のリクエスト」をクリックします。
3) php.iniの設定
php.iniはPHP 5.3.0のフォルダに置くことができます。設定方法はこれまでと変わりません。ただし、date.timezone = Asia/Shanghai に設定する必要があります。そうしないと、実行時にエラーが報告されます。わかりました。phpinfo() を見てください。拡張機能が必要な場合は、自分で開いてください。
3. 名前空間のサポート
名前空間のサポートが PHP 5.3.0 でついに追加されました。 PHP プログラマーは、多くの強力なオープンソース プロジェクト (Drupal、WordPress など) を持っているため、常に非常に傲慢ですが、名前空間について言及する以外に選択肢はありません。 PHP チームは、当初 PHP6 で考案された名前空間をついに PHP 5.3.0 に導入しました。 PHP で名前空間を使用すると、namespace キーワードも使用されます。
4. 静的遅延バインディング
5. クロージャ
6. ガベージ コレクション メカニズム
7. 多数の機能を最適化し、多数のバグを修正しました
5.3.0 このバージョンでは、多数の新機能が提供され、全体的なパフォーマンスが向上します。広範な最適化により、全体的なパフォーマンスが約 10% 向上しました。したがって、可能であれば、できるだけ早くプロジェクトを 5.3.0 にアップグレードすることをお勧めします。
参考:
ChangeLog
PHP 5.2.x から PHP 5.3.x への移行
php 5.3 は何をもたらしますか?