Submit Search
PHPの今とこれから2017
0 likes
•
276 views
Rui Hirokawa
PHP Conference 2017, Tokyo のプレゼンです。PHP 7.2の話題を中止にPHPの情報をまとめました。
Technology
Read more
1 of 23
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
More Related Content
What's hot
(20)
PDF
PHPの今とこれから2020
Rui Hirokawa
PDF
Hack/HHVM 入門
y-uti
PDF
PHPの今とこれから2019
Rui Hirokawa
PPTX
PHP AST 徹底解説
do_aki
PDF
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
PDF
PHPコアから読み解くPHP5.5
Yahoo!デベロッパーネットワーク
PPTX
php-src の歩き方
do_aki
PDF
最近の PHP の話
y-uti
PDF
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
PDF
ECMAScript没proposal追悼式
京大 マイコンクラブ
PDF
PECL を数えてみた
y-uti
PPTX
PHP AST 徹底解説(補遺)
do_aki
PDF
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
PDF
Prophecyを使ったユニットテスト
Akio Ishida
PDF
From Java To Clojure
Kent Ohashi
PDF
JIT のコードを読んでみた
y-uti
PDF
PHPの今とこれから2021
Rui Hirokawa
PDF
私とOSS活動とPerl
Shunsuke Maeda
PPTX
PHP と SAPI と ZendEngine3 と
do_aki
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
PHPの今とこれから2020
Rui Hirokawa
Hack/HHVM 入門
y-uti
PHPの今とこれから2019
Rui Hirokawa
PHP AST 徹底解説
do_aki
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
PHPコアから読み解くPHP5.5
Yahoo!デベロッパーネットワーク
php-src の歩き方
do_aki
最近の PHP の話
y-uti
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
ECMAScript没proposal追悼式
京大 マイコンクラブ
PECL を数えてみた
y-uti
PHP AST 徹底解説(補遺)
do_aki
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
Prophecyを使ったユニットテスト
Akio Ishida
From Java To Clojure
Kent Ohashi
JIT のコードを読んでみた
y-uti
PHPの今とこれから2021
Rui Hirokawa
私とOSS活動とPerl
Shunsuke Maeda
PHP と SAPI と ZendEngine3 と
do_aki
実"戦"CakePHP Plugin
Kenichirou Oyama
Similar to PHPの今とこれから2017
(20)
PDF
PHPの今とこれから2015
Rui Hirokawa
PDF
PHPの今とこれから2023
Rui Hirokawa
PDF
PHPの今とこれから2025 (PHP Conference Japan 2025)
Rui Hirokawa
PDF
PHPの今とこれから2022
Rui Hirokawa
PDF
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PDF
PHPの今とこれから2018
Rui Hirokawa
PDF
PHPの今とこれから2007
Rui Hirokawa
PDF
PHPの今とこれから2024 at PHP Conference Japan 2024
Rui Hirokawa
PDF
PHPの今とこれから2008
Rui Hirokawa
PDF
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
PDF
PHPの今とこれから2006
Rui Hirokawa
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PPT
PHP, Now and Then 2011
Rui Hirokawa
PDF
徹底攻略!PHP5.4
Takuya Sato
PDF
PHPの今とこれから2009
Rui Hirokawa
PDF
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
PDF
Phpのはなし
Serverworks Co.,Ltd.
PDF
PHPの今と未来を語る
Rui Hirokawa
PDF
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
PHPの今とこれから2015
Rui Hirokawa
PHPの今とこれから2023
Rui Hirokawa
PHPの今とこれから2025 (PHP Conference Japan 2025)
Rui Hirokawa
PHPの今とこれから2022
Rui Hirokawa
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PHPの今とこれから2018
Rui Hirokawa
PHPの今とこれから2007
Rui Hirokawa
PHPの今とこれから2024 at PHP Conference Japan 2024
Rui Hirokawa
PHPの今とこれから2008
Rui Hirokawa
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
PHPの今とこれから2006
Rui Hirokawa
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHP, Now and Then 2011
Rui Hirokawa
徹底攻略!PHP5.4
Takuya Sato
PHPの今とこれから2009
Rui Hirokawa
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
Phpのはなし
Serverworks Co.,Ltd.
PHPの今と未来を語る
Rui Hirokawa
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
Ad
More from Rui Hirokawa
(6)
PDF
日本PHPユーザ会の紹介
Rui Hirokawa
PDF
PHPの中の人によるパネルディスカッション
Rui Hirokawa
PDF
PHPの今と未来を語る
Rui Hirokawa
PDF
php.netの歩き方
Rui Hirokawa
PDF
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
PDF
スクリプト言語PHP攻略法
Rui Hirokawa
日本PHPユーザ会の紹介
Rui Hirokawa
PHPの中の人によるパネルディスカッション
Rui Hirokawa
PHPの今と未来を語る
Rui Hirokawa
php.netの歩き方
Rui Hirokawa
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
スクリプト言語PHP攻略法
Rui Hirokawa
Ad
Recently uploaded
(9)
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PHPの今とこれから2017
1.
PHPの今とこれから2017 PHP Conference 2017,
Tokyo October 8, 2017 廣川 類 (日本PHPユーザ会) 1
2.
PHPとは? PHPは主にWebアプリケーションに使用されるスクリプト言語 1995年の誕生以来、Webと共に成長、進化 82.8% 14.5% 2.5% 1.5% 0.6% サーバサイドプログラミング言語 PHP ASP.NET Java static
files ColdFusion 引用: W3Techs.com, 2017/10/1 59.6% 6.7% 4.7% 2.4% 2.0% CMSシェア WordPress Joomla Drupal Magento Blogger 2
3.
PHP アンケート 2017
主に使っているPHPのバージョン 1) PHP <=5.5 2) PHP 5.6 3) PHP 7.0~7.2 4) 使ってない 3
4.
PHPバージョン分布 引用: W3Techs.com, 2017/10/1 6.3% 1.9% 28.5% 14.6% 20.2% 19.5% 7.6% 7.1 7.0 5.6 5.5 5.4 5.3 5.2 (19.5%) (26.6%) (17.0%)
5.3~5.5: 5~7%減 、5.6:+12%、7.x:+6% EOLとなったPHP 5.5以前のユーザ: 63% WordPressの推奨環境:PHP 7, MySQL 5.6, HTTPS 4 (3.0%) (26.2%) * https://wordpress.org/about/requirements/
5.
PHPリリースサイクル 5 2014 2015 2016
2017 2018 2019 2020 5.4 5.5 5.6 7.0 7.1 アクティブサポート セキュリティ修正のみ 2017/10 リソース制約のため、ライフサイクルを定義 リリースサイクル:1年 ライフサイクル:3年(バグ修正:2年、セキュリティ修正のみ:1年) PHP 5.6のサポート期間延長(バグ修正:+4ヶ月、セキュリティ修正:+1年) EOL 2015/9/14 EOL 2016/7/10 EOL 2018/12/31 https://wiki.php.net/rfc/releaseprocess http://php.net/supported-versions.php EOL 2018/12/3 EOL 2019/12/1
6.
・名前空間 ・クロージャ ・遅延静的束縛 ・GC改善 ・MySQLnd PHPの歩み 5.3 `09/6 7.0 5.4 ・Traits ・高速化 ・MB標準化 ・組込みWebサーバ ・レガシー機能削除 `12/3 6.0 `10/3 キャンセル ・Unicode 5.5 ・ジェネレータ ・キャッシュ ・パスワードハッシュ `13/6 5.6 ・デバッガ ・定数スカラー式 `14/8 6 `15/12 ・大幅高速化 ・戻り値型宣言 ・スカラー型宣言 PHP 5.0
‘04/7 7.1 `16/12 ・Nullable ・複数例外キャッチ `17/11/30 7.2 ・高速化 ・暗号フレームワーク
7.
PHPリリース情報 Release 7.0 7.1
変更 2016/11/10 7.0.13 CVE-2016-9933,9934 2016/12/1 7.1.0 2016/12/8 7.0.14 CVE-2016-9935,9936 2017/1/19 7.0.15 7.1.1 CVE-2016-10158-10162,10167,10168,CVE-2017-5340 2017/2/16 7.0.16 7.1.2 2017/3/16 7.0.17 7.1.3 2017/4/13 7.0.18 7.1.4 2017/5/11 7.0.19 7.1.5 MySQL8 2017/6/8 7.0.20 7.1.6 2017/7/6 7.0.21 7.1.7 CVE-2017-9224, 9226-9229 (oniguruma) 2017/8/3 7.0.22 7.1.8 2017/8/31 7.0.23 7.1.9 2017/9/28 7.0.24 7.1.10 7 大きなセキュリティ上の問題は発生せず。 PHP 7.2.0 RC3 -> 2017/9/28
8.
PHP 7.2 改善/変更のポイント
さらなる高速化:約10% 関数の引数型宣言や戻り値でobject型を使用可能に リスト構文の末尾にカンマを追加可能に セキュリティ関連の改善 1. Argon2をパスワードハッシュで使用可能に 2. LibsodiumをPHPコアに導入 古い機能を廃止対象に 8
9.
より速く、快適に Athlon II X4
640 3.0GHz, Ubuntu 17.04 9 PHP 7.2はPHP 7.1から約10%高速化 Zend/bench.php 0 0.5 1 1.5 2 2.5 3 3.5 PHP 5.6 PHP 7.0 PHP 7.1 PHP 7.2 実行時間[s] strcat(200000) sieve(30) nestedloop(12) matrix(20) heapsort(20000) hash2(500) hash1(50000) fibo(30) ary3(2000) ary2(50000) ary(50000) ackermann(7) mandel2 mandel simpleudcall simpleucall
10.
より速く、快適に Athlon II X4
640 3.0GHz, Ubuntu 17.04 10 Zend/micro_bench.php 0 2 4 6 8 10 12 14 16 PHP 5.6 PHP 7.0 PHP 7.1 PHP 7.2 実行時間[s] $x = $f ? $f : tmp $x = $f ? $f : $a $x = $f ?: tmp $x = $a ?: null $x = $str[0] $x = $hash['v'] $x = $GLOBALS['v'] $x = $_GET $x = TEST new Foo() $x = Foo::TEST $this->f() empty($this->x) isset($this->x) $this->x-- $this->x++
11.
新しい引数型宣言/戻り値object 従来:Type hintingではクラス名(例:MyClass)を指定していた
制約:同一クラスまたは継承されたクラスのみ確認可能 汎用クラスを表す object を型引数または戻り値に指定 関数引数/戻り値にオブジェクトのみを指定する 11 RFC: https://wiki.php.net/rfc/object-typehint <?php class Foo {public $name='Taro';} class Moo {public $name='Hanako';} $obj1 = new Foo; $obj2 = new Moo; function test(object $arg) { return $arg->name; } echo test($obj1); // Taro echo test($obj2); // Hanako function foo() : object { $obj = json_decode(‘{}’); return $obj; }
12.
パスワードの保存と攻撃への対策 ハッシュ生成 パスワードのハッシュ値をmd5、sha1で保存⇒不適切 ⇒GPUによる総当り攻撃等で高速に解かれてしまう時代に
計算コストを適切に高めることで総当り攻撃に対応 パスワード検証 タイミング攻撃に対する対応: 実装は容易ではない PHP 5.5でパスワードハッシュ用APIを導入 常に最新の実装を簡単に(ハッシュ値にパラメータが含まれる) ハッシュ生成:password_hash() パスワード検証:password_verify() 12 $2y$10$ahnMG3iSJ0YWDSzdoGt/3.Lx1BKmyEA7Aw08WcFhlwiGzeqwwIAwO アルゴリズム オプション(例:コスト) ソルト ハッシュ化されたパスワード
13.
password_hash関数へのArgon2導入 Password Hashing
Competition 2015の勝者 Bcrypt(Blowfish)、Scryptの代替 より柔軟な設定:メモリコスト、時間コスト、並列度を調整 13 RFC: https://wiki.php.net/rfc/argon2_password_hash password_hash(‘password’,PASSWORD_DEFAULT) $opt= ['memory_cost'=>1<<17,'time_cost'=>4,'threads'=>2]; password_hash(‘password’,PASSWORD_ARGON2I,$opt); $2y$10$ahnMG3iSJ0YWDSzdoGt/3.Lx1BKmyEA7Aw08WcFhlwiGzeqwwIAwO 13 $argon2i$v=19$m=131072,t=4,p=2$N3dIdWhRMmpyR092a0lGdA$ ++ffUX2AYYyJVZgWGLj6F9OG9l3c6DGmi+fM2Rlz6kw アルゴリズム オプション ソルト ハッシュ化されたパスワード バージョン
14.
Libsodium標準サポート化 多くのプログラミング言語では、OpenSSLのみを提供 ⇒ RSAやAESの間違った使い方を誘発、認証付き暗号を未サポート
簡単/標準設定で安全な高レベル暗号API「libsodium」を標準コア化 サイドチャネル攻撃に対応可能、高速な暗号実装を提供 「近代的な暗号機能を標準サポートする最初のプログラミング言語」 秘密鍵(共通鍵)暗号 認証付き暗号(AE,AEAD):ChaCha20-Poly1305(RFC7905,djb) 公開鍵暗号 デジタル署名 鍵交換、鍵生成、鍵共有 14 RFC: https://wiki.php.net/rfc/libsodium
15.
15 $msg = "this
is secret message."; $ad = "public message."; $nonce = random_bytes(SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES); $ciphertext = sodium_crypto_aead_chacha20poly1305_encrypt($msg, $ad, $nonce, $key); echo sodium_crypto_aead_chacha20poly1305_decrypt($ciphertext, $ad, $nonce, $key); 伝送($ciphertext, $ad, $nonce) $key = sodium_crypto_aead_chacha20poly1305_keygen(); 認証付き暗号(AEAD) 鍵生成 暗号化 復号/検証 共有 認証付き暗号:データの秘匿性+完全性・認証性⇒:「暗号+MAC」で構成 ⇒ 選択平文攻撃に対する強秘匿性 + 選択メッセージ攻撃に対して偽造不可 認証付き暗号:ChaCha20 + Poly1305
16.
PHP 7.2: 廃止予定
Mcrypt:PECLに移動 PHP 7.2で廃止予定 → PHP 8.0で廃止 ⇒ E_DEPRECATED警告を発生 RFC: https://wiki.php.net/rfc/deprecations_php_7_2 廃止対象 代替 __autoload spl_autoload_register() $php_errormsg error_get_last()またはerror_clear_last() create_function() クロージャ(PHP>=5.3) mbstring.func_overload - 第二引数なしのparse_str() parse_str(“a=foo&b[]=foo+bar”, $output); each() foreach
17.
名前によるエクステンションロード php.iniにおけるエクステンションロードの環境依存を廃止 従来 17 extension=mbstring.so extension=php_mbstring.dll extension=mbstring Linux Windows PHP
7.2
18.
18 PHPフレームワーク 2017 Laravelの人気が高い 2011年にSymfony
2ベースで作成され、ユーザ認証をサポート、柔 軟・スケーラブル・簡単が支持される
19.
HHVM/Hackの進化 19 Facebookが開発/公開するPHP/Hack実行環境 3.24(LTS):PHP5をサポートする最終版(2018/1/12) HHVMの将来(2017/9/18) PHP7の完全互換は目指さない 主なPHPツール(Composer等)のHHVM版を提供
Hack用ツール/ライブラリの提供 Hack Standard Library:Hack配列 (vec,dict,keyset) TypeAssert:型無しデータ⇒型付きデータに変換 Hack言語の改良:デストラクタ及びリファレンスの廃止
20.
PHPのこれから PHP 7.3開発が開始される。 JIT for
PHP: OpCacheを拡張、Zendが次期 PHP(PHP8)用開発コードをテスト公開(2016/9/1) https://github.com/zendtech/php-src/tree/jit-dynasm/ext/opcache/jit Lua 用JITエンジンDynASMを使用 20 RFC: https://wiki.php.net/rfc/
21.
PHPユーザ相互の情報交換および コミュニティの健全な発展 設立趣旨 • 高性能Webミドルウエアへのニーズ増大 • オープンソースソフトウエアの発展 背景 国内PHPユーザの増加 活動内容 ドキュメント整備 セミナー/イベント メンバー/スタッフ 国際化 Web/SNS ・PHPユーザ会員と思ったらメンバー ・運営するのも楽しいかも 日本PHPユーザ会 (2000年4月発足) PHPカンファレンス 21 福岡
6/10,関西 7/15,東京 10/8 PHP勉強会
22.
22 PHP Conference 2017
の見どころ 1F大展示 2F小展示 4F梅 4F鶯 3F Apache Kafka によるスケーラブ ルアプリケーショ ン開発 OPcacheの最適 化器の今 OpenID Connectを通じてWebアプリケーション技術とPHPによる実装を学ぼう PHP初心者セッ ション できるPHPアッ プグレード PHPによるWeb アプリ脆弱性体 験トレーニング Lancersのバー ジョンアップ施 策について 型を意識した PHPアプリケー ション開発 グラブル流運用 術~ Serverless FrameworkでAWSフルマネージドなツールをいくつか作って得たアーキテクチャ設計の知見 モバイルページ を爆速に Roboを使った モダンなタスク 管理と自動化 広告配信管理システムを支えるPHP 大規模Webサ イトのURL刷新 の方針と実装 著名アプリの脆 弱性に学ぶセ キュアコーディン グの原則 現代におけるプ ロダクト開発と PHPを選定する ワケ PHPで作るサービスの、これまでの10年とこれからの10年 Realtime Database Messaging with Firebase DockerでPH アプリケーショ を本番リリース するまで Laravelで作る 分析環境 PHP Version UpとAWSへの移行 kuduを使用し たKPI分析シス テムの話 片手間MySQL チューニング戦略 PHPアプリケー ションにおける Dockerコンテナ・ クラスター戦略 運用、追加開発しづらいPHPアプリケーションに未来を与える方法 Phpとシグナル 処理、その裏側 PHPで理解す ニューラルネッ ワークを使った 機械学習 LT 11:00 11:35 12:00 13:00 13:35 14:10 14:45 15:20 15:55 17:10
23.
23 Challenge! ~やってみたを共有しよう~
Download