リリースノート
リリース年月 | バージョン | 説明 |
---|---|---|
1995年 | 1.0 | GPLの下でPHP Toolsを公開した。 |
1998年 | 3.0 | GPLとPHP Licenseとのデュアルライセンスで公開した。 |
2000年 | 4.0 | PHPのプログラミング言語を処理するコア部分の再設計を行った。(Zend Engine)、またより多くのWebサーバサポートの機能拡張を行った。 コード発展の妨げを排除するためGPLは除外された。 |
2004年7月 | 5.0 | オブジェクト指向を本格的にサポートし始めた。 |
2006年11月 | 5.2 | クラスのオートロードが追加された。(それまでのPHPにありがちな大量のrequireと縁を切ることが可能になった。) |
2009年6月 | 5.3 | 名前空間、クロージャ、遅延静的束縛、GC改善、MySQLndが導入された。 |
2010年3月 | 6.0 | Unicode対応を目指したが多くの問題があり断念した。 |
2012年3月 | 5.4 | Traits、高速化、MB標準化、レガシー機能削除、ビルドインサーバー機能が実装された。他のWebサーバーを導入しなくても開発できるようになった。また、6で目指していたUnicodeもここで盛り込まれた。 |
2013年6月 | 5.5 | ジェネレータ、キャッシュ、パスワードハッシュが導入された。 |
2014年 | 5.6 | 対話式デバッガがSAPIとして組み入れられた。2018年12月をもってセキュリティ対応サポートも終了した。 |
2015年 | 7.0 | 前バージョンの5.6に比べて内部エンジンをZend Engine3とした。かなり速度が向上した。(25~70%の性能アップ)、戻り値型宣言、スカラー型宣言導入。 |
2017年 | 7,2 | さらに速度が向上している。 |
2020年11月 | 8.0 | |
ビルドインサーバー機能とは?
PHP5.4から内蔵されているサーバー機能のことです。あくまで動作確認用のサーバであり本格的な運用に耐えうるサーバーではありません。
php.ini
PHPのバージョンフォルダにあるPHPの設定ファイルです。
よく使う項目
ログ関連
設定項目 | 説明 |
---|---|
error_reporting | エラーのレベル |
display_errors | ブラウザ上にエラーを表示するかの設定(On/Off) |
log_errors | エラーログを吐く設定(On/Off) |
error_log | エラーログを吐くファイルの設定 |
タイムゾーン
設定項目 | 説明 |
---|---|
date.timezone | 東京等 |
マルチバイト
設定項目 | 説明 |
---|---|
default_charset | UTF-8等 |
mbstring.language | Japanese |
mbstring.internal_encoding | UTF-8 |
mbstring.encoding_translation | On/Off |
mbstring.http_input | pass |
mbstring.http_output | UTF-8 |
mbstring.detect_order | auto |
セッション関連
設定項目 | 説明 |
---|---|
session.name | セッション名 |
session.autostart | セッションを自動開始するか、「1:有効/0:無効」 |
composer
composerはPHPライブラリの使用を管理してくれる便利ツールです。
もともとPHPで書かれたライブラリはPEARを利用してシステムワイドにインストールすることが多かったです。ただ、2012年にRubyのbundlerやNodeのnpmに影響を受けて似たようなパッケージ管理ツールとして登場しました。
composerのメリット
必要な他のライブラリも一緒にまとめてダウンロードして配置してくれます。ない場合は自分で一つ一つ探してインストールする必要があります。
composer.phar
composerをpharでアーカイブ化したものです。phar-composerコマンドでビルドして作成が可能です。
そもそもpharとは?
複数プロジェクトからなるPHPプロジェクトをまるごと1ファイルに固めたアーカイブファイルです。PHPスクリプトだけでなく任意のファイルも内包できます。
autoload
composerでautoloadを利用すると特定のディレクトリを名前空間として定義する事が可能です。autoloadを使わない場合は通常のPHPと同様にrequire_onceで外部PHPファイルを読み込む必要がありますが、autoloadを使用した場合はnamespaceで一括でファイルを読み込むことができます。
1 2 3 4 5 6 7 |
{ "autoload": { "psr-4": { "名前空間名\\" : "ディレクトリ名/" } } } |
呼び出す側のファイル名に下記の記述をします。
1 |
use 名前空間名\ファイル名; |
おすすめライブラリ
Carbon
PHPでDateTimeクラスを継承した日付を操作しやすくするためのライブラリです。
PHPでセッションを使うには?
セッションを使いたい場合はPHPファイルの先頭に下記の宣言をします。
1 |
session_start(); |
セッションに値を設定する。
1 |
$_SESSION['キー名'] = 値; |
セッションに値が設定されているかチェックする。
isset関数を使います。
1 2 3 |
if(!isset($_SESSION['キー名'])){ 処理 } |
セッションから値を削除する。
必要なくなったらできるだけセッションに情報は残さない方が良いので削除しましょう。
1 |
<?php unset($_SESSION['キー名']); ?> |
セッションを破棄する。
1 |
session_destroy(); |
クッキー
クッキーはセッションを作成したタイミングで下記の変数に格納されます。
1 |
$_COOKIE |
中身は連想配列で下記のように値が入っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
array(6) { ["experimentation_subject_id"]=> string(94) "IjlhM2NlZmQzLWI5MzEtNGQzMy1hMmZkLTU3MDIzMGNiMGNlMiI=--1456c72edd2a2909dccdcdfc5052b287761f9370" ["sidebar_collapsed"]=> string(5) "false" ["ajs_group_id"]=> string(4) "null" ["ajs_user_id"]=> string(28) ""ziuuxsqztibk8jkxjswaieke6w"" ["ajs_anonymous_id"]=> string(28) ""00000000000000000000000000"" ["PHPSESSID"]=> string(26) "crliesnis9fjtkrqcr2a1qogbv" } |
PHPSESSID
セッションIDになります。
クッキーに値を設定する。
1 |
setcookie('設定値', '',, '/'); |
この記事へのコメントはありません。