SlideShare a Scribd company logo
1 of 27
Download to read offline
PHPの今とこれから2022
PHP Conference Japan 2022
September 24-25, 2022
廣川 類 (日本PHPユーザ会)
1
自己紹介:ひろかわ
◼ PHPのホビーユーザ(1996~)
◼ PHPマニュアルの日本語化
◼ マルチバイト化:mbstringエクステンション
◼ PHPカンファレンス皆勤中!
◼ PHP関連書籍:
➢ PHP徹底攻略
➢ 初めてのPHP(監訳)
2
PHPとは?
◼ PHPは主にWebアプリケーションに使用されるスクリプト言語
◼ 1995年の誕生以来、Webと共に成長、進化
◼ 現場の課題を簡単に解決してくれる便利なツールです
引用: W3Techs.com, 2022/8/10 3
サーバサイド言語のシェア
WordPress
64.3%
Shopify
6.2%
Wix
3.4%
Squarespace
3.0%
Joomla
2.5%
other
20.6%
CMSのシェア
PHP
77.5%
ASP.NET
7.7%
Ruby
5.7%
Java
4.2%
Scala
2.7%
other
2.2%
PHPアンケート 2022
4
PHPの開発体制
Rasmus Lerdorf
Andi Gutmans
Zeev Suraski
Marcus Boerger
開発アカウント:約2,000名(15名)
コア:約150名(5名)
PHP Group:10名
Nikita Popov
Derick Rethans
https://www.php.net/credits.php
Dmitry Stogov
PHP財団(PHP Foundation)設立
◼ 2021年11月に設立がアナウンスされたPHP開発者をサポートするため
の非営利団体.JetBrains社が主要スポンサー
◼ きっかけは,PHPに多大な貢献をしていたNikita Popov氏がJetBrainsを
退社し,PHP開発にかける時間を大幅に減らすと宣言したこと.
◼ 背景・課題:重要なインフラであるPHPは個人のモチベーションに依存
して開発・維持されており,生活面の保証(支援)がない.
◼ OpenCollectiveにより運営され,個人・企業の寄付に基づき,PHP開発
者を支援.
◼ 主要な開発者であるDmitry Stogov 氏らへのサポートが決定.
◼ 財政状況等はオープンになっており,誰でも貢献(寄付)ができる.
https://thephp.foundation/
https://opencollective.com/phpfoundation
7
PHP 1 PHP 2 PHP 3 PHP 4 PHP 5 PHP 7 PHP 8
総ステップ数 2946 40377 141066 406227 1103847 1133517 1261005
0
200,000
400,000
600,000
800,000
1,000,000
1,200,000
1,400,000
総ステップ数
Python 3 Ruby 2
総ステップ数 422087 863913
0
200,000
400,000
600,000
800,000
1,000,000
1,200,000
総ステップ数
◼ パーソナルツールからプラットフォームへ
◼ 大衆的ツールから安全で実用的な高性能ツールへ
1. 言語仕様:PHP 5.3/5.4で現代的なスクリプト言語に
2. 性能:PHP 5で高速化,PHP 7で最速に
3. セキュリティ:PHP 5でCoverity Scan適用
2015/12
2004/7
2000/5
1998/6
1997/11
1995/6
総ステップ数(.cファイル) 総ステップ数(.cファイル)
PHPの歩み
2015/12 2020/11
8
20年で速度が50倍に!
(ほぼ)同じスクリプトが動く!
PHPの歩み
bench.php
Ryzen 5 2400G
Ubuntu 20.04
PHPの歩み
9
2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
8.0
`20/11/26
8.1
`21/11/25
2023
5.5
5.6
5.4
Traits
マルチバイト
ジェネレータ
キャッシュ
デバッガ
7.0
7.1
7.2
7.3
7.4
高速化
スカラー型宣言
戻り値型宣言
プロパティ型宣言
FFI
JIT
union
Fiber
Enum
交差型
PHP 5.3-5.4
現代的な機能導入
PHP7
大幅高速化
PHP8
JIT導入
8.2
`22/11/24
DNF
readonlyクラス
PHPバージョン分布
引用: W3Techs.com, 2022/8/10
8.1
1.3%
8.0
3.1%
7.4
38.4%
7.3
15.4%
7.2
10.5%
7.1
3.7%
7.0
3.7%
5.x
23.8%
other
0.2%
◼ PHP7ユーザ: 71.6% (昨年: 68.2%),PHP 8ユーザ:4.4% (昨年: 0.8%)
◼ PHP 5(EOL)のユーザ: 23.8% (昨年: 30.5%),PHP 7.3まで(EOL)のユーザ:57.2%
◼ WordPressの推奨環境:PHP 7.4, MySQL 5.7/MariaDB 10.3, HTTPS
10
* https://wordpress.org/about/requirements/
◼ PHPのライフサイクル:3年(バグ修正:2年、セキュリティ修正のみ:1年)
◼ EOL以降はセキュリティ関連の修正も提供されず、非常に危険です
◼ PHP5、PHP 7.0~7.3 は EOLとなっています
PHPリリースサイクル
11
2018 2019 2020 2021 2022 2023 2024
5.6
7.0
7.1
7.2
7.3
7.4
8.0
アクティブサポート セキュリティ修正のみ
2022/9/25
EOL 2018/12/31
http://php.net/supported-versions.php
EOL 2018/12/3
EOL 2019/12/1
EOL 2020/11/30
EOL 2021/12/6
EOL 2022/11/28
EOL 2023/11/26
PHPリリース情報
Release 7.4 8.0 8.1 変更
2021/10/21 7.4.25 8.0.12 CVE-2021-21703 (PHP-FPM)
2021/11/18 7.4.26 8.0.13 CVE-2021-21707 (XML)
2021/11/25 8.1.0 PHP 8.1.0 Release, PHP 7.3 EOL (2021/12/6)
2021/12/16 7.4.27 8.0.14 8.1.1
2022/1/20 8.0.15 8.1.2
2022/2/17 7.4.28 8.0.16 8.1.3 CVE-2021-21708 (Filter):リモートコード実行
2022/3/17 8.0.17 8.1.4
2022/4/14 7.4.29 8.0.18 8.1.5 Rebuilding Windows binaries for security updates
2022/5/12 8.0.19 8.1.6
2022/6/9 7.4.30 8.0.20 8.1.7 CVE-2022-31626 (mysql), 31625 (pgsql)
2022/7/7 8.0.21 8.1.8
2022/8/4 8.0.22 8.1.9
2022/9/1 8.0.23 8.1.10
12
◼ CVE-* ⇒ 速やかな更新が必要
PHP8 JIT: より速く、快適に
Ryzen 5 2400G, Ubuntu 22.04 14
◼ PHP 8.2: 地道な実行速度改善が進んで
いる.
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
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
simplecall
simple
Zend/bench.php
0
0.5
1
1.5
2
2.5
$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++
--$this->x
++$this->x
$this->x += 2
$this->x = 0
$x = $this->x
Foo::f()
self::f()
empty(Foo::$x)
isset(Foo::$x)
Foo::$x = 0
$x = Foo::$x
empty(self::$x)
isset(self::$x)
self::$x = 0
$x = self::$x
int_func()
undef_func()
func()
empty_loop
PHP8 JIT: より速く、快適に
Ryzen 5 2400G, Ubuntu 20.04 15
◼ PHP 8.2: JIT(キャッシュ)は地道
時に改良されているが,実行速度の
差は小さい.
Zend/micro_bench.php
PHP 8.2 改善/変更のポイント
◼ Randomエクステンション
◼ Disjunctive Normal Form(DNF)型
◼ null/true/false型の追加
◼ readonly属性のクラスへの適用
◼ バックトレースにおける出力抑制
◼ 定数式における列挙型プロパティ
◼ Traitで定数が利用可に
◼ mbstring関連の修正 8.1.0-8.1.7で非互換な変換
◼ 動的プロパティ廃止対象(deprecated)
◼ strtolower(), strtoupper()がロケール非依存に
◼ utf8_encode(), utf8_decode()が廃止対象に
代替:mb_strtolower()
代替:mb_convert_encoding()
互換性のない変更・不具合
機能追加
動的プロパティの廃止
17
https://wiki.php.net/rfc/deprecate_dynamic_properties
従来のPHPでは,あるクラスにおいて宣言されていないプロパティに値が代入されると,
自動的に指定したプロパティが作成される ⇒ エラー見逃しの原因に
◼ 変数名のタイポなどにより予測しない動作を誘発す
るリスクがあるため,廃止
(PHP 8.2でDeprecated警告,PHP 9.0で廃止)
◼ クラスの定義の前に属性
#[AllowDynamicProperties] を指定⇒ 従来の動作
◼ __get(),__set()メソッド,stdClassは従来どおり利
用できる
<?php
class Foo {
public $item;
}
$moo = new Foo;
$moo->iten = "apple";
null/true/false型の追加
18
https://wiki.php.net/rfc/null-false-standalone-types
https://wiki.php.net/rfc/true-type
◼ true. false, nullを独立した型として追加
◼ 従来はunionの中でのみ使用可: string|false
◼ true|falseは不可(boolと記載)
function test(null $v): null {
return $v;
}
class Foo {
public true $v = true;
public function foo(false $v): false {
return $v;
}
}
Traitsで定数が利用可に
19
https://wiki.php.net/rfc/constants_in_traits
◼ 従来,traitの中での定数を宣言は不可:
⇒ 定数宣言を可能にした
◼ traitで宣言された定数には,クラス定数としてアクセスできる
⇒ traitの定数としてのアクセスは不可
trait Foo {
public const CONSTANT = 1;
public function bar(): int {
return self::CONSTANT;
}
}
class Moo {
use Foo;
}
print(Moo::CONSTANT); // 1
print(Foo::CONSTANT);
Fatal error: Traits cannot have constants
NG
OK
Readonlyクラス属性
20
https://wiki.php.net/rfc/readonly_classes
◼ クラスプロパティの変更ができなくなる.
◼ 動的プロパティ代入は警告ではなく,エラーになる.
◼ プロパティ変数の宣言時に型宣言を省略したり,static宣言を行ったりすることはできない.
◼ 継承先とreadonly属性は一致している必要がある(異なるとエラー発生)
<?php
readonly class Foo {
public int $bar;
public function __construct() {
$this->bar = 1;
}
}
$foo = new Foo();
$foo->bar = 2; // 致命的エラーを発生
DNFクラスの導入 (1/2)
21
◼ PHP 8.0で合併型(Union, OR),PHP 8.1で交差型(Intersection, AND)を導入.
◼ DNF (Disjunctive Normal Form, 選言標準形) はAND式をOR式で結合する構造
⇒合併型(Union, OR)と交差型(Intersection, AND)を結合する型宣言が可能になる.
◼ DNFは正規化された表現形式であり,処理系への負荷が低く,可読性も高い.理論的にあ
らゆる組み合わせを表現可能.
RFC: https://wiki.php.net/rfc/enumerations
interface A {}
interface B {}
interface C {}
interface D {
public function show(((A&B)|C $a): (A&B)|C;
}
A B C
DNFクラスの導入 (2/2)
22
◼ クラス継承:「共変性(戻り値)と反変性(引数)」の原則が適用される.
RFC: https://wiki.php.net/rfc/enumerations
A B C
✓ 戻り値:集合を縮小させる型宣言のみ有効
✓ 引数:集合を拡大させる型宣言のみ有効
interface D {
public function show(A&B $a): (A&B)|C;
}
class Moo implements D {
public function show((A&B)|C $a): A&B {}
} A B
戻り値:
集合が縮小(OK)
引数:
集合が拡大(OK)
バックトレース出力抑制
23
◼ 例外・エラー発生時にスタックトレースが表示または記録される
⇒ センシティブな情報(パスワード)が出力・記録されるリスクがある.
◼ #[¥SensitiveParameter] 属性を付与することで出力を抑制
RFC: https://wiki.php.net/rfc/redact_parameters_in_back_traces
<?php
function db_connect($user, $password) {
throw new ¥Exception('Error');
}
db_connect('taro', 'secret');
Fatal error: Uncaught Exception: Error in ../test.php:3
Stack trace:
#0 ../test.php(6): db_connect('taro',’secret’)
#1 {main}
thrown in test.php on line 3
<?php
function db_connect($user, #[¥SensitiveParameter] $password) {
throw new ¥Exception('Error');
}
乱数実装の改善
24
https://wiki.php.net/rfc/rng_extension
✓ PHPの乱数生成器は状態がグローバルに保持されている.
⇒ランダムな処理を行う内部関数を使うと状態が変化:回帰試験の再現性がなくなる
✓ メルセンヌ・ツイスターは統計的なテスト(CrushおよびBigCrush)をパスできない
mt_srand(1234);
…
var_dump(mt_rand(1, 100));
$engine = new Random¥Engine¥Mt19937(1234);
$randomizer = new Random¥Randomizer($engine);
従来の関数 Random¥Randomizer
クラス
mt_rand(), random_int() getInt()
random_bytes() getBytes()
shuffle() shuffleArray()
str_shuffle() shuffleBytes()
str_shuffle('abc’);
✓ 乱数生成用クラスを定義,独立した状態保持が可能になった
✓ 新しい乱数生成エンジンに対応:PCG64 (pcg_onseq-128-xsl-rr-64)またはXoshiro256**
PHP 8.1におけるmbstringの動作修正
26
◼ PHP 8.1.0において,シフトJIS・Unicode間の文字コード変換がJIS規格(JIS X
0201)に基づく定義に変更された.
◼ 従来はMS社によるデファクト標準に基づいており,過去のコードとの互換性
の問題を発生するため,PHP 8.1.8(7/7リリース)においてリバートされた.
echo mb_convert_encoding("¥x5C","UCS2","SJIS");
0x005C (半角バックスラッシュ)
従来のPHP
0x00A5(円記号)
PHP8.1.0~8.1.7
シフトJISの¥をUnicodeに変換
PHP の将来
◼ PHPスクリプトの用途拡大:Opcache(プリローディング)+JIT+FFIの活用
1. PHPエクステンション:C言語による記述からPHPによる記述へ(FFI)
2. 計算負荷が高いアルゴリズムのPHPによる実装:機械学習・AI等 (PHP-ML, Rubix ML)
⇒ ただし,Rubix MLの例ではTensorエクステンションの方が大幅(約10倍)速い
27
入力処理(C言語)
外部API実行
PHPスクリプト
従来のエクステンション(C言語)
出力処理(C言語)
PHP出力
入力処理(PHP)
外部API実行
PHPスクリプト
FFIエクステンション(PHP)
出力処理(PHP)
PHP出力
https://rubixml.com/
Rubix ML
PHPユーザ相互の情報交換
およびコミュニティの健全な発展
設立趣旨 活動内容
ドキュメント整備
セミナー/イベント
メンバー/スタッフ
国際化
Web/SNS
• PHPユーザ会員と思ったらメンバー
• 運営してみるのも楽しいかも
日本PHPユーザ会
(2000年4月発足)
PHPカンファレンス
28
PHP勉強会
29
◼ 2022年のPHPカンファレンスは,新型コロナウイルス(COVID-19)感染症拡大
防止に配慮しつつ, 3年ぶりに対面での開催となります.
◼ 今年も,二日間,思う存分お楽しみください!
◼ オンライン開催では「YouTube Live」を利用したライブでのセッションを始め、
オンラインのコンテンツについてもお楽しみください。
PHP Conference Japan 2022

More Related Content

What's hot

できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023Rui Hirokawa
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するそうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するshigeki_ohtsu
 
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニックPHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニックYoshio Hanawa
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術Kiyokuni Kawachiya
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったかHiroshi Tokumaru
 

What's hot (20)

できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するそうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
 
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニックPHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
最速C# 7.x
最速C# 7.x最速C# 7.x
最速C# 7.x
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
 

Similar to PHPの今とこれから2022

PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020Rui Hirokawa
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015Rui Hirokawa
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)Rui Hirokawa
 
PHPの今とこれから2018
PHPの今とこれから2018PHPの今とこれから2018
PHPの今とこれから2018Rui Hirokawa
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecationy-uti
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るshinjiigarashi
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjHisateru Tanaka
 
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!shinjiigarashi
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008Rui Hirokawa
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006Rui Hirokawa
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Yuya Yamaki
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007Rui Hirokawa
 
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うレガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うYuta Ohashi
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法Rui Hirokawa
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてTakuji Kawata
 
FuelPHP活用事例
FuelPHP活用事例FuelPHP活用事例
FuelPHP活用事例Yusuke Naka
 

Similar to PHPの今とこれから2022 (20)

PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
 
PHPの今とこれから2018
PHPの今とこれから2018PHPの今とこれから2018
PHPの今とこれから2018
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
 
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007
 
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うレガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
 
FuelPHP活用事例
FuelPHP活用事例FuelPHP活用事例
FuelPHP活用事例
 

More from Rui Hirokawa

PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021Rui Hirokawa
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019Rui Hirokawa
 
日本PHPユーザ会の紹介
日本PHPユーザ会の紹介日本PHPユーザ会の紹介
日本PHPユーザ会の紹介Rui Hirokawa
 
PHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッションPHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッションRui Hirokawa
 
PHPの今とこれから2009
PHPの今とこれから2009PHPの今とこれから2009
PHPの今とこれから2009Rui Hirokawa
 
PHPの今と未来を語る
PHPの今と未来を語るPHPの今と未来を語る
PHPの今と未来を語るRui Hirokawa
 
PHPの今と未来を語る
PHPの今と未来を語るPHPの今と未来を語る
PHPの今と未来を語るRui Hirokawa
 
php.netの歩き方
php.netの歩き方php.netの歩き方
php.netの歩き方Rui Hirokawa
 
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~Rui Hirokawa
 
PHPの今とこれから2017
PHPの今とこれから2017PHPの今とこれから2017
PHPの今とこれから2017Rui Hirokawa
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionRui Hirokawa
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014Rui Hirokawa
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話Rui Hirokawa
 
PHPの今とこれから 2013
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013Rui Hirokawa
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011Rui Hirokawa
 

More from Rui Hirokawa (16)

PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019
 
日本PHPユーザ会の紹介
日本PHPユーザ会の紹介日本PHPユーザ会の紹介
日本PHPユーザ会の紹介
 
PHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッションPHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッション
 
PHPの今とこれから2009
PHPの今とこれから2009PHPの今とこれから2009
PHPの今とこれから2009
 
PHPの今と未来を語る
PHPの今と未来を語るPHPの今と未来を語る
PHPの今と未来を語る
 
PHPの今と未来を語る
PHPの今と未来を語るPHPの今と未来を語る
PHPの今と未来を語る
 
php.netの歩き方
php.netの歩き方php.netの歩き方
php.netの歩き方
 
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
 
PHPの今とこれから2017
PHPの今とこれから2017PHPの今とこれから2017
PHPの今とこれから2017
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special Edition
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
 
PHPの今とこれから 2013
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011
 

PHPの今とこれから2022