More Related Content
PPTX
PDF
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019 PDF
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい PPTX
PDF
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online) PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기 PPTX
Tips and experience_of_dx12_engine_development._ver_1.2 PDF
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER What's hot
PDF
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~ PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER PDF
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER PDF
UE4.25 Update - Unreal Insights - PDF
PDF
建築ビジュアライズにおけるLightmass実践使用方法 (フリーランス 真茅健一様) PDF
令和最新!SwiftUI+async_awaitで自分はこう設計・実装している!.pdf PPTX
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기 PDF
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授! PDF
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~ PPTX
PDF
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例 PDF
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive) PDF
【Unite 2017 Tokyo】Navmesh完全マスターへの道 PDF
物理ベース?アート指向? ~尤もらしさと自由度を両立するレンズフレア表現 PDF
UE4を使った映像制作 (UE4 Character Art Dive Online) PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2 PPTX
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장 PDF
【Unite Tokyo 2019】「禍つヴァールハイト」Timelineだから可能だった!モバイルに最適化されたリアルタイム3D演出! PDF
「3Dゲームをおもしろくする技術 」のいろいろな読み方 Viewers also liked
PPTX
PPTX
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか PDF
PDF
PDF
PDF
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。 PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015 PDF
PDF
PPTX
Similar to なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
PDF
PDF
PDF
PDF
PDF
PHPの今とこれから2025 (PHP Conference Japan 2025) PDF
PDF
PPT
PDF
PHPの今とこれから2024 at PHP Conference Japan 2024 PDF
PDF
PDF
PDF
お前は PHP の歴史的な理由の数を覚えているのか PDF
PDF
PDF
Modern PHP Programming @ PFI Seminar PPTX
PDF
PHPの「歴史的理由」ってなんだ!?を過去のPHPをPHP1まで遡って紹介していきます PDF
PDF
More from sasezaki
PDF
PDF
HTTPメッセージ、PHPの 事情ば分かっとっと? PDF
PDF
Awesome PHP extensions! Top 50! PPTX
PPTX
これからのPHPライブラリとパッケージマネージメントの話をしよう ODP
PHP Conference Japan 2010 : Zend Framewrok PDF
"More" Introduction to Zend Tool PDF
PDF
Phpstudy44 Zend Frameworkが抱えている問題は多い。 なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
- 1.
なぜ、 PHP のmbstring.func_overload
を deprecated にするのに 5 年
かかったのか? - 慢心、環境の違い
Y8 2017 spring in Shibuya
sasezaki
May 27, 2017
- 2.
2
目次
●
自己紹介
●
PHP のこれまで
●
PHP の仕組みと 拡張モジュール
●
PHP と 文字列
●
mbstring.func_overload の機能について
●
非推奨提案するに至った経緯 / 提案以降の話
●
5 年かけたことについての反省点
●
"mbstring.func_overload" と同じ事態を避けるには
●
まとめ
●
... おまけの話 ( 例えば文字列を避ける、 7.2 での他の deprecated)
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
14
PHP 3 や4 の初期 、みんな
mbstring を使っていたかというと・・・
➔
PHP 版の jcode もありましたが・・・
➔
※ PHP 3の頃は、前身として I18n Package というものだったようです。
(ext/mbstring/README_PHP3-i18n-ja)
1999 2003~
- 15.
- 16.
16
さよなら PHP 6
●
5.3リリース
●
register_globals , safe_mode, magic_quotes_gpc の非
推奨化 (E_DEPRECATED エラー )
●
バイナリセーフではない関数 (ereg, split)の非推奨化
●
GitHub の浸透も相まって ライブラリなど PHP でも開発が活
発に / CIの SaaS 台頭
2009 2012~
- 17.
17
~~ PHP 5.6そしてPHP 7.0, 7.1~
●
5.5 - preg_replace()の /e 修飾子 (eval) が非推奨に
●
5.6 - iconvおよび mbstring の、エンコーディングに関する
オプションが非推奨に
●
PHP 7.0 リリース
●
スカラー型宣言 / 戻り値の型宣言 の導入
●
AST 導入
2013 2017~
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
24
コア拡張
●
ストリーム (4.3 にて登場)
●
Phar (5.3から組み込み )
●
SPL (5.3から組み込み )
・・・など
今となっては、当然存在するでしょ !
という機能も、過去にはビルド時に外せた
「これらは実際のところ拡張ではありません。 PHP の
コアに組み込まれており、 コンパイルオプションで
無効にすることはできません。」
http://php.net/extensions.membership
- 25.
- 26.
26
外部拡張
●
各 DB 向けドライバ(MySQLi など )
●
Gettext
●
DOM
●
cURL
・・・など
「これらの拡張は PHP にバンドルされています
が、コンパイルするには外部ライブラリが
必要となります。」
http://php.net/extensions.membership
- 27.
27
PECL 拡張
●
V8js
●
SPL_Types /DataStructures
●
phtreads / 各イベント系 (libevent など )
●
mysqlnd_* 系
・・・など
ここまでが、 php.net にてマニュアルが
閲覧できるものです。
「これらの拡張は » PECL にあります。 また、
外部のライブラリを必要とするかもしれません。」
- 28.
- 29.
29
PHP の しくみ/ 拡張モジュール
PHP 自体でのフック・コード解析する余地がある。
開発者と利用者 ( コンポーネント開発者 ) が想定する
環境はコアとバンドルである。
- 30.
- 31.
31
「 PHP では、文字は 1 バイトと同じで
す。つまり、 256 個の異なる文字を使用可
能です。 これは、PHP が Unicode をネ
イティブにサポートしていないことも意味
します。」
http://php.net/language.types.string
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
40
もしかして、 PHP 6の話 ですか?
https://www.slideshare.net/andreizm/the-good-the-bad-and-the-ugly-what-happened-to-unicode-and-php-6
- 41.
- 42.
42
PHP と 文字列
PHPでは低レイヤに関わる機能の多くを提供し
ている。
PHP で 文字エンコーディングに関わる操作を行
うときは、専用のモジュールが必要となる。
- 43.
- 44.
- 45.
- 46.
46
「 mbstring では、対応するマルチバイト文字対
応版の関数で既存の PHP 関数を オーバーロード
する機能をサポートします。関数のオーバーロード
を行うと、例えば substr() を PHP スクリプトで
コールした場合に、 mb_substr() が代わりにコー
ルされるようになります。 これにより、マルチバ
イト文字に対応しないアプリケーションの移植が容
易となります。」
php.net/mbstring.overload
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
59
zf1 にて、各コンポーネントごとで PHP環境の
差分対応のために横展開的な修正があったことから、
ユーティリティコンポーネント (ZendStdlib)
の開発気風が高まり、その一環で
マルチバイト対応の点から、
StringUtils の提案が行われます。
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
76
2013 年 10月
「ユニコードについてのスライド up しました」、
という PHP 開発者のツイート
https://twitter.com/auroraeosrose/status/388380154713489409
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
85
2016 年 2月
7.1 に向け Deprecation の RFC 提案が出され
http://news.php.net/php.internals/91265
- 86.
86
2016 年 11月
RFC は 7.2 向けの Deprecations に
http://news.php.net/php.internals/96993
- 87.
87
2016 年 11月
非推奨の一つとして、 mbstring.func_overload が
リストに上がる
https://wiki.php.net/rfc/deprecations_php_7_2
- 88.
- 89.
- 90.
90
2016 年 12月
・・ twig ではしれっと削除されてる
https://github.com/twigphp/Twig/commit/b09faf8
- 91.
- 92.
- 93.
93
Zend Framework 2での ML でのやりとり、および日本人メ
ンテナーへの報告 (2012 年 ) から
internals での投票可決と master への反映まで
5 年の月日が経過していた。
※ PHP 7.2 はまだリリースはされていません。
➔なぜ 5 年かけてしまったのか?
➔5 年の歳月のうち取れた行動はなかったのか?
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.