狠狠撸

狠狠撸Share a Scribd company logo
PHP の今とこれから  2011 日本 PHP ユーザ会  廣川 類 PHP カンファレンス 2011 2011 年 9 月 10 日 ( 土 )
4.0 4.1 ?エンジン大幅強化/ OOP : ZE1 ? PEAR 2000 2001 *  日本 PHP   ユーザ会設立 *  PHP カンファレンス ? mbstring 統合 ?性能改善 -  入力セキュリティ改善 4.2 ?自動グローバル変数のデフォルト無効化 ? mbregex ? zend-multibyte 2002 2003 2004 2005 2006 2007 2008 2009 4.3 ? CLI ? stream 4.4 `02/12 `02/4 `01/12 `00/5 `05/6 ?バグ修正 `08/8 5.0 `04/7 ?エンジン /OOP 大幅強化: ZE2 ? XML 対応強化 (SimpleXML) ? Web サービス (SOAP) ? DB 強化  (SQLite, MySQLi) 5.1 `05/11 ?実行速度改善 ? PDO 5.2 ?メモリ管理/速度改善 ?入力フィルタ `06/11 5.3 `09/6 2010 ?名前空間 ?クロージャ ?遅延静的束縛 ? GC 改善 ? MySQLnd 5.5 *  PHP10 周年 *  開発体制強化 *  PHP ユーザ会 10 周年 *  ガラケー->スマフォ *  HTML 5 *  フレームワーク *  AJAX/RIA * XML *Web サービス *  Web/DB *  セキュリティ *  PHP5 移行促進 *  PHP QA 強化 *  新機能投票制に PHP の歩み 5.4 ? Traits -  速度改善 -  マルチバイト強化 -  レガシー機能削除 2011 2012 * PHP カンファレンス関西 ( ? weakref)
PHP 5.3 への移行 大幅な機能強化( PHP 6.0 開発遅延の影響) メモリ効率/速度改善、名前空間、遅延静的束縛、クロージャ、 ... PHP 5.2  のサポート終了 : PHP 5.2.17 (2011/1) フレームワークのサポート: Sympony 2.0 (2011/7) AMD64, 2GHz Windows Vista SP1 Zend/bench.php
PHP  標準リリースプロセス リリースサイクル:1年 ライフサイクル:3年(バグ修正:2年、セキュリティ修正のみ:1年) 同一メジャーリリース(例: 5.x )では下位互換性を確保 同一マイナーリリース(例: 5.3.x )ではバイナリ互換性を確保 https://wiki.php.net/rfc/releaseprocess ****  pre release phase ++++ release lifetime with all bug fixes, no feature addition ---- release lifetime security  fixes only D  EOL Version Time -> 2011  2012  2013  2014  2015  2016  2017 |  |  |  |  |  |  |  |  |  |  |  |  | 5.3  +++++++++++++-----D 5.4  |+++++++++++++++++++++++++-----------D 5.5  |  |  |*++++++++++++++++++++++++-----------D 5.6  |  |  |  |  |*++++++++++++++++++++++++-----------D 6.0  |  |  |  |  |*++++++++++++++++++++++++-----------D
PHP 5.4  改善 / 変更のポイント スケジュール: 2011/8/4 α3 、 2011/9/B β 、  2011/9/E RC1 速度改善: 10% ?  15% Traits :コードの再利用性改善 レガシー機能の削除 : register_globals, zend.ze1_compatibility_mode, magic_quotes*, safe_mode* , ext/sqlite マルチバイト対応強化( mbstring 機能強化) (テスト用)組込み Web サーバー :  php  -S  localhost:8080 default_charset :  ISO-8859-1 から UTF-8 に エラー設定:  E_STRICT  が  E_ALL に含まれるようになった
Zend/bench.php Zend/microbench.php 43% 高速化 19% 高速化 PHP 5. 4でより速く、快適に 更なる高速化、省メモリ化
PHP 5.4  でコード再利用 :Traits Trait:  単一継承の言語でコードを再利用する仕組み 「言語がサポートするコピー/ペースト」(多重継承よりシンプル) クラスや他の traits とメソッド名の衝突を解決する仕組み <? php trait  A { public function show() {   echo 'Hello,',$this->getName(),'!';  } abstract public function getName(); } class  Base  {  /* 1 */  } class Foo  extends  Base  { use  A; public function getName() { echo 'PHP'; } } $obj = new Foo(); echo $obj->show();  // Hello,PHP! <? php trait  A { public function show() { echo 'Hello,';} } trait  B { public function show() {echo 'PHP!';} } class Foo { use  A, B { A::show  insteadof  B; B::show  as  showN; } } $obj = new Foo(); echo $obj->show() . $obj->showN(); リネームでは なくエイリアス
PHP 5.4  で構文が便利に オープンタグの短縮形(テンプレート記述がわかりやすくなる) こんにちは、 <? php echo $name; ?> さん こんにちは、 <?= $ name ?> さん short_open_tag  を有効にすると <?  ?> タグが有効となり、 XML と干渉する。 ->  short_open_tag  の設定によらず有効に $ a = array(1,2,3); $b = array('name' => 'taro', 'age' => 23); $ a =  [1,2,3] ; $b =  ['name' => 'taro', 'age' => 23] ; 配列デリファレンシング (配列を返す関数/メソッドの処理簡略化) function foo () { return array('taro',23);} $v = foo(); echo  $v[0];  // taro echo  foo()[0]; echo $foo->bar()[0]; 配列定義の簡略表記(配列の定義が簡単に)
PHP 5.4  でもう少し便利に 2 進数表現 echo  0b00100 ;  //  出力:  4 function foo ( callable  $do) {} foo(“strcmp”); foo(function() {}); foo(1);  // catchable fatal error コール可能な引数に対するタイプヒント
PHP 5.4  で日本語の扱いが便利に Zend エンジンマルチバイト対応標準化:バイナリ互換性改善 従来 :PHP 構築時に – enable-zend-multibyte –enable-mbstring PHP 5.4 :  zend.multibyte = On   で有効に mbstring.script_encoding ->  zend.script_encoding mb_encode_numericentity, mb_decode_numericentity: 16 進数値文字参照(例: &#x89AB; )追加 RFC3629 準拠の UTF-8 にチェック強化(最大4バイト) mbstring ( libmbfl )に文字コード追加: 携帯用 : SJIS-Mobile 、 UTF-8-Mobile 、 ISO-2022-JP-Mobile JIS X0213 : SJIS-2004 、 EUC-JP-2004 、 ISO-2022-JP-2004 SJIS-Mac (MacJapanese) 、 GB18030 、 CP950 、 CP936
PHP 5.4  で UTF-8  がより安全に RFC3629 準拠の UTF-8 にチェック強化(最大4バイト): PHP 5.3 まで: 最大 6 バイト、非最短形式を許容/出力しない 非最短形式の UTF-8 の例:   ‘ <’ (0x3C) = 0xC0 BC, 0xE0 80 BC, 0xF0 80 80 BC 不正な UTF-8 の例 mb_substitute_character(0xFFFD); $s = &quot;\x41 \xe0\x9f \x80 \x41&quot;; echo mb_convert_encoding($s,&quot;UTF-16&quot;,&quot;UTF-8&quot;); U+0041  U+07C0  U+0041 PHP 5.2 まで U+0041  U+FFFD   U+FFFD  U+0041 PHP 5.4 U+0041 U+0041 PHP 5.3 A0A AA A[?][?]A
従来の携帯絵文字変換 DoCoMo SJIS-win UTF-8 (Unicode) PUA DB KDDI SoftBank DoCoMo SoftBank KDDI KDDI ( 非公式 ) UTF-8 PUA : Private Use Area  (U+E000 … U+F8FF) 各キャリアは SJIS 、 UTF-8 外字領域に絵文字を定義 キャリア内変換( SJIS? UTF-8 )、キャリア間変換を定義 独自の変換をライブラリで定義: HTML_Emoji,Text_Pictogram_Mobile など KDDI DoCoMo SoftBank キャリア内変換 キャリア間変換 スクリプトによる変換 mbstring による変換
PHP 5.4  の絵文字変換 DoCoMo SJIS-DoCoMo UTF-8-DoCoMo UTF-8 (Unicode 6.0)  DB KDDI SoftBank BMP UTF-8 (1 ?  4 バイト )  utf8mb4 (MySQL) BMP : U+2000 .. U+3299 SMP : U+1F300 .. U+1F7FF Pictgraphic sets PUP : U+FE000 .. U+ FEFFF Google キャリア内変換 キャリア間変換 mbstring による変換 SJIS-KDDI SJIS-SoftBank UTF-8-KDDI UTF-8-SoftBank SMP PUP-A ? Unicode に収録されない文字は emoji4unicode のマッピングにより PUP に収録 ?キャリア間変換未定義の文字は代替文字となる (ライブラリによるフォールバック処理を想定) ■  Unicode 6.0 へ絵文字収録: 携帯以外でもサポート ■  Unicode 6.0 を介したキャリア内/キャリア間相互変換を定義 ■ 各キャリア用 SJIS,UTF-8,ISO-2022-JP(KDDI のみ ) を定義 ?
キャリア内文字コード変換:  DoCoMo SJIS -> DoCoMo UTF-8 キャリア間文字コード変換:  DoCoMo SJIS -> SoftBank SJIS キャリア文字コード ?  UTF-8 ( Unicode 6.0 ): DB 保存用 PHP 5.4 :携帯電話の絵文字の例 echo mb_convert_encoding(&quot;\xF8\x9F&quot;, &quot;SJIS-Mobile#SoftBank&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); echo mb_convert_encoding(&quot;\xF8\x9F&quot;, &quot;UTF-8-Mobile#DOCOMO&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); utf8 = mb_convert_encoding(&quot;\xF8\x9F&quot;, &quot;UTF-8&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); 出力:  UTF8-EE98BE (U+E63E) 出力: SJIS-F98B 出力:  UTF8-E29880 (U+2600)
PHP とセキュリティ 1.アプリケーション固有の脆弱性 ( XSS 等 ) 2.設定に起因する脆弱性( OS 、 Web サーバ、 DB 、 PHP ) 3.システム固有の脆弱性( OS 、 Web サーバ、ブラウザ、 DB 、 PHP ) ? 攻撃手段は日々進化する ? 初心者だからといって許してくれない ? 基本を守る ? 最新の情報を見る(雑誌、ブログ等)
PHP と QA -  PHPのコード品質は比較的高い 欠陥 / MLOC  Coverity ( 米国 国土安全保障省’ 07 ) -  テストされていないコードには欠陥がある カバレッジ率改善: 約 60% ( PHP 5.2 )               -> 約 70% (PHP 5.3) LOC   -   PHP 5.3.7 (8/18 公開 ) で crypt 関数( MD5) が  動作しなかった ? RC5 で静的解析ツールの警告を修正した際にエンバグ ?テストケースの失敗を ノイズとして見過ごす ?修正版( PHP 5.3.8 )を緊急公開 (8/23) ?軽微な未修正の問題についてもテストケースがコミットされ FAIL する原因となっている。 ->  提案「 XFAIL (experimental fail) を導入し、 FAIL の出現の判別を容易にする 」 strncat != strlcat
PHP ユーザ相互の情報交換およびコミュニティの健全な発展 設立趣旨   高性能 Web ミドルウエアへのニーズ増大  オープンソースソフトウエアの発展 背景 国内 PHP ユーザの増加 活動内容 ドキュメント整備 セミナー/イベント メンバー/スタッフ 国際化 http://www.php.gr.jp/ Web ? PHP ユーザ会員と思ったらメンバー ?運営するのも楽しいかも 日本 PHP ユーザ会 (2000 年 4 月発足 ) php-users, php-dev, php-doc, phpug-admin メーリングリスト
PHP の成功と未来 Scales  :小規模サイトから Facebook/Yahoo! まで    C10k 問題 (node.js), MySQL 5.6(NoSQL   I/F), gearman Easy to learn : 言語がシンプル、ドキュメントが豊富   -  多様な要求に応えつつわかり易さを保つことが必要 -  地道な活動が重要: ローカルな PHP カンファレンス、勉強会、等 Easy to manage : 必要十分な現実的な解を提供 ( Web の進化に対応)   -  キラーアプリ (WordPress など ) の存在がキー -  モバイル対応( PC ->  スマートフォン)がますます重要に - Web API (OAuth 2), HTML 5  などの新標準への対応

More Related Content

What's hot (20)

HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
Masaaki Yonebayashi
?
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
y-uti
?
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyGood Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
?
笔贬笔コアから読み解く笔贬笔5.5
笔贬笔コアから読み解く笔贬笔5.5笔贬笔コアから読み解く笔贬笔5.5
笔贬笔コアから読み解く笔贬笔5.5
驰补丑辞辞!デベロッパーネットワーク
?
笔贬笔における滨/翱多重化と测颈别濒诲
笔贬笔における滨/翱多重化と测颈别濒诲笔贬笔における滨/翱多重化と测颈别濒诲
笔贬笔における滨/翱多重化と测颈别濒诲
驰补丑辞辞!デベロッパーネットワーク
?
PHP-FPM の子フ?ロセス制御方法と設定をおさらいしよう
PHP-FPM の子フ?ロセス制御方法と設定をおさらいしようPHP-FPM の子フ?ロセス制御方法と設定をおさらいしよう
PHP-FPM の子フ?ロセス制御方法と設定をおさらいしよう
Shohei Okada
?
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
y-uti
?
笔贬笔5.5新机能「ジェネレータ」初心者入门
笔贬笔5.5新机能「ジェネレータ」初心者入门笔贬笔5.5新机能「ジェネレータ」初心者入门
笔贬笔5.5新机能「ジェネレータ」初心者入门
kwatch
?
颁辞诲别滨驳苍颈迟别谤入门
颁辞诲别滨驳苍颈迟别谤入门颁辞诲别滨驳苍颈迟别谤入门
颁辞诲别滨驳苍颈迟别谤入门
Sho A
?
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki
?
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろうPerl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
keroyonn
?
颁笔础狈の依存モジュールをもう少し正しく検出したい
颁笔础狈の依存モジュールをもう少し正しく検出したい颁笔础狈の依存モジュールをもう少し正しく検出したい
颁笔础狈の依存モジュールをもう少し正しく検出したい
charsbar
?
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
?
【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方
【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方
【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方
kwatch
?
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
do_aki
?
.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説
.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説
.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説
Cherry Pie Web
?
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
Naoya Ito
?
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
y-uti
?
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyGood Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
?
PHP-FPM の子フ?ロセス制御方法と設定をおさらいしよう
PHP-FPM の子フ?ロセス制御方法と設定をおさらいしようPHP-FPM の子フ?ロセス制御方法と設定をおさらいしよう
PHP-FPM の子フ?ロセス制御方法と設定をおさらいしよう
Shohei Okada
?
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
y-uti
?
笔贬笔5.5新机能「ジェネレータ」初心者入门
笔贬笔5.5新机能「ジェネレータ」初心者入门笔贬笔5.5新机能「ジェネレータ」初心者入门
笔贬笔5.5新机能「ジェネレータ」初心者入门
kwatch
?
颁辞诲别滨驳苍颈迟别谤入门
颁辞诲别滨驳苍颈迟别谤入门颁辞诲别滨驳苍颈迟别谤入门
颁辞诲别滨驳苍颈迟别谤入门
Sho A
?
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki
?
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろうPerl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
keroyonn
?
颁笔础狈の依存モジュールをもう少し正しく検出したい
颁笔础狈の依存モジュールをもう少し正しく検出したい颁笔础狈の依存モジュールをもう少し正しく検出したい
颁笔础狈の依存モジュールをもう少し正しく検出したい
charsbar
?
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
?
【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方
【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方
【厂蚕尝インジェクション対策】徳丸先生に怒られない、动的厂蚕尝の安全な组み立て方
kwatch
?
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
do_aki
?
.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説
.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説
.丑迟补肠肠别蝉蝉によるリダイレクト彻底解説
Cherry Pie Web
?
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
Naoya Ito
?

Similar to PHP, Now and Then 2011 (20)

Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop
Daisuke Sugai
?
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
?
笔贬笔の今とこれから2009
笔贬笔の今とこれから2009笔贬笔の今とこれから2009
笔贬笔の今とこれから2009
Rui Hirokawa
?
2017年春の笔别谤濒
2017年春の笔别谤濒2017年春の笔别谤濒
2017年春の笔别谤濒
charsbar
?
贵颈谤别蹿辞虫5+贬罢惭尝5×5
贵颈谤别蹿辞虫5+贬罢惭尝5×5贵颈谤别蹿辞虫5+贬罢惭尝5×5
贵颈谤别蹿辞虫5+贬罢惭尝5×5
dynamis
?
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
?
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + Perl
Naoya Ito
?
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
ThinReports
?
Ruby – The Scripting Language
Ruby – The Scripting LanguageRuby – The Scripting Language
Ruby – The Scripting Language
Akio Tajima
?
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
?
2009年の笔贬笔フレームワーク
2009年の笔贬笔フレームワーク2009年の笔贬笔フレームワーク
2009年の笔贬笔フレームワーク
Takuya Sato
?
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
dynamis
?
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
Gosuke Miyashita
?
厂迟谤耻迟蝉2を始めよう!
厂迟谤耻迟蝉2を始めよう!厂迟谤耻迟蝉2を始めよう!
厂迟谤耻迟蝉2を始めよう!
Shinpei Ohtani
?
Php in ruby
Php in rubyPhp in ruby
Php in ruby
do_aki
?
颁补办别笔贬笔3ウォークスルー
颁补办别笔贬笔3ウォークスルー颁补办别笔贬笔3ウォークスルー
颁补办别笔贬笔3ウォークスルー
Tomoki Hasegawa
?
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
?
Windows? API Code Pack for Microsoft? .NET Framework
Windows? API Code Pack for Microsoft? .NET FrameworkWindows? API Code Pack for Microsoft? .NET Framework
Windows? API Code Pack for Microsoft? .NET Framework
Tadahiro Higuchi
?
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop
Daisuke Sugai
?
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
?
笔贬笔の今とこれから2009
笔贬笔の今とこれから2009笔贬笔の今とこれから2009
笔贬笔の今とこれから2009
Rui Hirokawa
?
2017年春の笔别谤濒
2017年春の笔别谤濒2017年春の笔别谤濒
2017年春の笔别谤濒
charsbar
?
贵颈谤别蹿辞虫5+贬罢惭尝5×5
贵颈谤别蹿辞虫5+贬罢惭尝5×5贵颈谤别蹿辞虫5+贬罢惭尝5×5
贵颈谤别蹿辞虫5+贬罢惭尝5×5
dynamis
?
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
?
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + Perl
Naoya Ito
?
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
搁耻产测向け帐票ソリューション「罢丑颈苍搁别辫辞谤迟蝉」の开発で知る翱厂厂の威力
ThinReports
?
Ruby – The Scripting Language
Ruby – The Scripting LanguageRuby – The Scripting Language
Ruby – The Scripting Language
Akio Tajima
?
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
?
2009年の笔贬笔フレームワーク
2009年の笔贬笔フレームワーク2009年の笔贬笔フレームワーク
2009年の笔贬笔フレームワーク
Takuya Sato
?
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
dynamis
?
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
Gosuke Miyashita
?
厂迟谤耻迟蝉2を始めよう!
厂迟谤耻迟蝉2を始めよう!厂迟谤耻迟蝉2を始めよう!
厂迟谤耻迟蝉2を始めよう!
Shinpei Ohtani
?
Php in ruby
Php in rubyPhp in ruby
Php in ruby
do_aki
?
颁补办别笔贬笔3ウォークスルー
颁补办别笔贬笔3ウォークスルー颁补办别笔贬笔3ウォークスルー
颁补办别笔贬笔3ウォークスルー
Tomoki Hasegawa
?
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
?
Windows? API Code Pack for Microsoft? .NET Framework
Windows? API Code Pack for Microsoft? .NET FrameworkWindows? API Code Pack for Microsoft? .NET Framework
Windows? API Code Pack for Microsoft? .NET Framework
Tadahiro Higuchi
?

More from Rui Hirokawa (19)

PHPの今とこれから2024 at PHP Conference Japan 2024
PHPの今とこれから2024   at PHP Conference Japan 2024PHPの今とこれから2024   at PHP Conference Japan 2024
PHPの今とこれから2024 at PHP Conference Japan 2024
Rui Hirokawa
?
笔贬笔の今とこれから2023
笔贬笔の今とこれから2023笔贬笔の今とこれから2023
笔贬笔の今とこれから2023
Rui Hirokawa
?
笔贬笔の今とこれから2022
笔贬笔の今とこれから2022笔贬笔の今とこれから2022
笔贬笔の今とこれから2022
Rui Hirokawa
?
日本笔贬笔ユーザ会の绍介
日本笔贬笔ユーザ会の绍介日本笔贬笔ユーザ会の绍介
日本笔贬笔ユーザ会の绍介
Rui Hirokawa
?
笔贬笔の中の人によるパネルディスカッション
笔贬笔の中の人によるパネルディスカッション笔贬笔の中の人によるパネルディスカッション
笔贬笔の中の人によるパネルディスカッション
Rui Hirokawa
?
笔贬笔の今とこれから2008
笔贬笔の今とこれから2008笔贬笔の今とこれから2008
笔贬笔の今とこれから2008
Rui Hirokawa
?
笔贬笔の今とこれから2007
笔贬笔の今とこれから2007笔贬笔の今とこれから2007
笔贬笔の今とこれから2007
Rui Hirokawa
?
笔贬笔の今とこれから2006
笔贬笔の今とこれから2006笔贬笔の今とこれから2006
笔贬笔の今とこれから2006
Rui Hirokawa
?
笔贬笔の今と未来を语る
笔贬笔の今と未来を语る笔贬笔の今と未来を语る
笔贬笔の今と未来を语る
Rui Hirokawa
?
笔贬笔の今と未来を语る
笔贬笔の今と未来を语る笔贬笔の今と未来を语る
笔贬笔の今と未来を语る
Rui Hirokawa
?
辫丑辫.苍别迟の歩き方
辫丑辫.苍别迟の歩き方辫丑辫.苍别迟の歩き方
辫丑辫.苍别迟の歩き方
Rui Hirokawa
?
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
?
笔贬笔の今とこれから2017
笔贬笔の今とこれから2017笔贬笔の今とこれから2017
笔贬笔の今とこれから2017
Rui Hirokawa
?
笔贬笔の今とこれから2018
笔贬笔の今とこれから2018笔贬笔の今とこれから2018
笔贬笔の今とこれから2018
Rui 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 Edition
Rui Hirokawa
?
笔贬笔の今とこれから2016
笔贬笔の今とこれから2016笔贬笔の今とこれから2016
笔贬笔の今とこれから2016
Rui Hirokawa
?
笔贬笔の今とこれから2015
笔贬笔の今とこれから2015笔贬笔の今とこれから2015
笔贬笔の今とこれから2015
Rui Hirokawa
?
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
?
スクリプト言语笔贬笔攻略法
スクリプト言语笔贬笔攻略法スクリプト言语笔贬笔攻略法
スクリプト言语笔贬笔攻略法
Rui Hirokawa
?
PHPの今とこれから2024 at PHP Conference Japan 2024
PHPの今とこれから2024   at PHP Conference Japan 2024PHPの今とこれから2024   at PHP Conference Japan 2024
PHPの今とこれから2024 at PHP Conference Japan 2024
Rui Hirokawa
?
笔贬笔の今とこれから2023
笔贬笔の今とこれから2023笔贬笔の今とこれから2023
笔贬笔の今とこれから2023
Rui Hirokawa
?
笔贬笔の今とこれから2022
笔贬笔の今とこれから2022笔贬笔の今とこれから2022
笔贬笔の今とこれから2022
Rui Hirokawa
?
日本笔贬笔ユーザ会の绍介
日本笔贬笔ユーザ会の绍介日本笔贬笔ユーザ会の绍介
日本笔贬笔ユーザ会の绍介
Rui Hirokawa
?
笔贬笔の中の人によるパネルディスカッション
笔贬笔の中の人によるパネルディスカッション笔贬笔の中の人によるパネルディスカッション
笔贬笔の中の人によるパネルディスカッション
Rui Hirokawa
?
笔贬笔の今とこれから2008
笔贬笔の今とこれから2008笔贬笔の今とこれから2008
笔贬笔の今とこれから2008
Rui Hirokawa
?
笔贬笔の今とこれから2007
笔贬笔の今とこれから2007笔贬笔の今とこれから2007
笔贬笔の今とこれから2007
Rui Hirokawa
?
笔贬笔の今とこれから2006
笔贬笔の今とこれから2006笔贬笔の今とこれから2006
笔贬笔の今とこれから2006
Rui Hirokawa
?
笔贬笔の今と未来を语る
笔贬笔の今と未来を语る笔贬笔の今と未来を语る
笔贬笔の今と未来を语る
Rui Hirokawa
?
笔贬笔の今と未来を语る
笔贬笔の今と未来を语る笔贬笔の今と未来を语る
笔贬笔の今と未来を语る
Rui Hirokawa
?
辫丑辫.苍别迟の歩き方
辫丑辫.苍别迟の歩き方辫丑辫.苍别迟の歩き方
辫丑辫.苍别迟の歩き方
Rui Hirokawa
?
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
?
笔贬笔の今とこれから2017
笔贬笔の今とこれから2017笔贬笔の今とこれから2017
笔贬笔の今とこれから2017
Rui Hirokawa
?
笔贬笔の今とこれから2018
笔贬笔の今とこれから2018笔贬笔の今とこれから2018
笔贬笔の今とこれから2018
Rui 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 Edition
Rui Hirokawa
?
笔贬笔の今とこれから2016
笔贬笔の今とこれから2016笔贬笔の今とこれから2016
笔贬笔の今とこれから2016
Rui Hirokawa
?
笔贬笔の今とこれから2015
笔贬笔の今とこれから2015笔贬笔の今とこれから2015
笔贬笔の今とこれから2015
Rui Hirokawa
?
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
?
スクリプト言语笔贬笔攻略法
スクリプト言语笔贬笔攻略法スクリプト言语笔贬笔攻略法
スクリプト言语笔贬笔攻略法
Rui Hirokawa
?

Recently uploaded (11)

2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?

PHP, Now and Then 2011

  • 1. PHP の今とこれから 2011 日本 PHP ユーザ会 廣川 類 PHP カンファレンス 2011 2011 年 9 月 10 日 ( 土 )
  • 2. 4.0 4.1 ?エンジン大幅強化/ OOP : ZE1 ? PEAR 2000 2001 * 日本 PHP ユーザ会設立 * PHP カンファレンス ? mbstring 統合 ?性能改善 - 入力セキュリティ改善 4.2 ?自動グローバル変数のデフォルト無効化 ? mbregex ? zend-multibyte 2002 2003 2004 2005 2006 2007 2008 2009 4.3 ? CLI ? stream 4.4 `02/12 `02/4 `01/12 `00/5 `05/6 ?バグ修正 `08/8 5.0 `04/7 ?エンジン /OOP 大幅強化: ZE2 ? XML 対応強化 (SimpleXML) ? Web サービス (SOAP) ? DB 強化 (SQLite, MySQLi) 5.1 `05/11 ?実行速度改善 ? PDO 5.2 ?メモリ管理/速度改善 ?入力フィルタ `06/11 5.3 `09/6 2010 ?名前空間 ?クロージャ ?遅延静的束縛 ? GC 改善 ? MySQLnd 5.5 * PHP10 周年 * 開発体制強化 * PHP ユーザ会 10 周年 * ガラケー->スマフォ * HTML 5 * フレームワーク * AJAX/RIA * XML *Web サービス * Web/DB * セキュリティ * PHP5 移行促進 * PHP QA 強化 * 新機能投票制に PHP の歩み 5.4 ? Traits - 速度改善 - マルチバイト強化 - レガシー機能削除 2011 2012 * PHP カンファレンス関西 ( ? weakref)
  • 3. PHP 5.3 への移行 大幅な機能強化( PHP 6.0 開発遅延の影響) メモリ効率/速度改善、名前空間、遅延静的束縛、クロージャ、 ... PHP 5.2 のサポート終了 : PHP 5.2.17 (2011/1) フレームワークのサポート: Sympony 2.0 (2011/7) AMD64, 2GHz Windows Vista SP1 Zend/bench.php
  • 4. PHP 標準リリースプロセス リリースサイクル:1年 ライフサイクル:3年(バグ修正:2年、セキュリティ修正のみ:1年) 同一メジャーリリース(例: 5.x )では下位互換性を確保 同一マイナーリリース(例: 5.3.x )ではバイナリ互換性を確保 https://wiki.php.net/rfc/releaseprocess **** pre release phase ++++ release lifetime with all bug fixes, no feature addition ---- release lifetime security fixes only D EOL Version Time -> 2011 2012 2013 2014 2015 2016 2017 | | | | | | | | | | | | | 5.3 +++++++++++++-----D 5.4 |+++++++++++++++++++++++++-----------D 5.5 | | |*++++++++++++++++++++++++-----------D 5.6 | | | | |*++++++++++++++++++++++++-----------D 6.0 | | | | |*++++++++++++++++++++++++-----------D
  • 5. PHP 5.4 改善 / 変更のポイント スケジュール: 2011/8/4 α3 、 2011/9/B β 、 2011/9/E RC1 速度改善: 10% ?  15% Traits :コードの再利用性改善 レガシー機能の削除 : register_globals, zend.ze1_compatibility_mode, magic_quotes*, safe_mode* , ext/sqlite マルチバイト対応強化( mbstring 機能強化) (テスト用)組込み Web サーバー : php -S localhost:8080 default_charset : ISO-8859-1 から UTF-8 に エラー設定:  E_STRICT が E_ALL に含まれるようになった
  • 6. Zend/bench.php Zend/microbench.php 43% 高速化 19% 高速化 PHP 5. 4でより速く、快適に 更なる高速化、省メモリ化
  • 7. PHP 5.4 でコード再利用 :Traits Trait:  単一継承の言語でコードを再利用する仕組み 「言語がサポートするコピー/ペースト」(多重継承よりシンプル) クラスや他の traits とメソッド名の衝突を解決する仕組み <? php trait A { public function show() { echo 'Hello,',$this->getName(),'!'; } abstract public function getName(); } class Base { /* 1 */ } class Foo extends Base { use A; public function getName() { echo 'PHP'; } } $obj = new Foo(); echo $obj->show(); // Hello,PHP! <? php trait A { public function show() { echo 'Hello,';} } trait B { public function show() {echo 'PHP!';} } class Foo { use A, B { A::show insteadof B; B::show as showN; } } $obj = new Foo(); echo $obj->show() . $obj->showN(); リネームでは なくエイリアス
  • 8. PHP 5.4 で構文が便利に オープンタグの短縮形(テンプレート記述がわかりやすくなる) こんにちは、 <? php echo $name; ?> さん こんにちは、 <?= $ name ?> さん short_open_tag を有効にすると <? ?> タグが有効となり、 XML と干渉する。 -> short_open_tag の設定によらず有効に $ a = array(1,2,3); $b = array('name' => 'taro', 'age' => 23); $ a = [1,2,3] ; $b = ['name' => 'taro', 'age' => 23] ; 配列デリファレンシング (配列を返す関数/メソッドの処理簡略化) function foo () { return array('taro',23);} $v = foo(); echo $v[0]; // taro echo foo()[0]; echo $foo->bar()[0]; 配列定義の簡略表記(配列の定義が簡単に)
  • 9. PHP 5.4 でもう少し便利に 2 進数表現 echo 0b00100 ; // 出力: 4 function foo ( callable $do) {} foo(“strcmp”); foo(function() {}); foo(1); // catchable fatal error コール可能な引数に対するタイプヒント
  • 10. PHP 5.4 で日本語の扱いが便利に Zend エンジンマルチバイト対応標準化:バイナリ互換性改善 従来 :PHP 構築時に – enable-zend-multibyte –enable-mbstring PHP 5.4 : zend.multibyte = On で有効に mbstring.script_encoding -> zend.script_encoding mb_encode_numericentity, mb_decode_numericentity: 16 進数値文字参照(例: &#x89AB; )追加 RFC3629 準拠の UTF-8 にチェック強化(最大4バイト) mbstring ( libmbfl )に文字コード追加: 携帯用 : SJIS-Mobile 、 UTF-8-Mobile 、 ISO-2022-JP-Mobile JIS X0213 : SJIS-2004 、 EUC-JP-2004 、 ISO-2022-JP-2004 SJIS-Mac (MacJapanese) 、 GB18030 、 CP950 、 CP936
  • 11. PHP 5.4 で UTF-8 がより安全に RFC3629 準拠の UTF-8 にチェック強化(最大4バイト): PHP 5.3 まで: 最大 6 バイト、非最短形式を許容/出力しない 非最短形式の UTF-8 の例: ‘ <’ (0x3C) = 0xC0 BC, 0xE0 80 BC, 0xF0 80 80 BC 不正な UTF-8 の例 mb_substitute_character(0xFFFD); $s = &quot;\x41 \xe0\x9f \x80 \x41&quot;; echo mb_convert_encoding($s,&quot;UTF-16&quot;,&quot;UTF-8&quot;); U+0041 U+07C0 U+0041 PHP 5.2 まで U+0041 U+FFFD U+FFFD U+0041 PHP 5.4 U+0041 U+0041 PHP 5.3 A0A AA A[?][?]A
  • 12. 従来の携帯絵文字変換 DoCoMo SJIS-win UTF-8 (Unicode) PUA DB KDDI SoftBank DoCoMo SoftBank KDDI KDDI ( 非公式 ) UTF-8 PUA : Private Use Area (U+E000 … U+F8FF) 各キャリアは SJIS 、 UTF-8 外字領域に絵文字を定義 キャリア内変換( SJIS? UTF-8 )、キャリア間変換を定義 独自の変換をライブラリで定義: HTML_Emoji,Text_Pictogram_Mobile など KDDI DoCoMo SoftBank キャリア内変換 キャリア間変換 スクリプトによる変換 mbstring による変換
  • 13. PHP 5.4 の絵文字変換 DoCoMo SJIS-DoCoMo UTF-8-DoCoMo UTF-8 (Unicode 6.0) DB KDDI SoftBank BMP UTF-8 (1 ? 4 バイト ) utf8mb4 (MySQL) BMP : U+2000 .. U+3299 SMP : U+1F300 .. U+1F7FF Pictgraphic sets PUP : U+FE000 .. U+ FEFFF Google キャリア内変換 キャリア間変換 mbstring による変換 SJIS-KDDI SJIS-SoftBank UTF-8-KDDI UTF-8-SoftBank SMP PUP-A ? Unicode に収録されない文字は emoji4unicode のマッピングにより PUP に収録 ?キャリア間変換未定義の文字は代替文字となる (ライブラリによるフォールバック処理を想定) ■ Unicode 6.0 へ絵文字収録: 携帯以外でもサポート ■ Unicode 6.0 を介したキャリア内/キャリア間相互変換を定義 ■ 各キャリア用 SJIS,UTF-8,ISO-2022-JP(KDDI のみ ) を定義 ?
  • 14. キャリア内文字コード変換:  DoCoMo SJIS -> DoCoMo UTF-8 キャリア間文字コード変換: DoCoMo SJIS -> SoftBank SJIS キャリア文字コード ? UTF-8 ( Unicode 6.0 ): DB 保存用 PHP 5.4 :携帯電話の絵文字の例 echo mb_convert_encoding(&quot;\xF8\x9F&quot;, &quot;SJIS-Mobile#SoftBank&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); echo mb_convert_encoding(&quot;\xF8\x9F&quot;, &quot;UTF-8-Mobile#DOCOMO&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); utf8 = mb_convert_encoding(&quot;\xF8\x9F&quot;, &quot;UTF-8&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); 出力: UTF8-EE98BE (U+E63E) 出力: SJIS-F98B 出力: UTF8-E29880 (U+2600)
  • 15. PHP とセキュリティ 1.アプリケーション固有の脆弱性 ( XSS 等 ) 2.設定に起因する脆弱性( OS 、 Web サーバ、 DB 、 PHP ) 3.システム固有の脆弱性( OS 、 Web サーバ、ブラウザ、 DB 、 PHP ) ? 攻撃手段は日々進化する ? 初心者だからといって許してくれない ? 基本を守る ? 最新の情報を見る(雑誌、ブログ等)
  • 16. PHP と QA - PHPのコード品質は比較的高い 欠陥 / MLOC Coverity ( 米国 国土安全保障省’ 07 ) - テストされていないコードには欠陥がある カバレッジ率改善: 約 60% ( PHP 5.2 )              -> 約 70% (PHP 5.3) LOC -   PHP 5.3.7 (8/18 公開 ) で crypt 関数( MD5) が  動作しなかった ? RC5 で静的解析ツールの警告を修正した際にエンバグ ?テストケースの失敗を ノイズとして見過ごす ?修正版( PHP 5.3.8 )を緊急公開 (8/23) ?軽微な未修正の問題についてもテストケースがコミットされ FAIL する原因となっている。 ->  提案「 XFAIL (experimental fail) を導入し、 FAIL の出現の判別を容易にする 」 strncat != strlcat
  • 17. PHP ユーザ相互の情報交換およびコミュニティの健全な発展 設立趣旨   高性能 Web ミドルウエアへのニーズ増大  オープンソースソフトウエアの発展 背景 国内 PHP ユーザの増加 活動内容 ドキュメント整備 セミナー/イベント メンバー/スタッフ 国際化 http://www.php.gr.jp/ Web ? PHP ユーザ会員と思ったらメンバー ?運営するのも楽しいかも 日本 PHP ユーザ会 (2000 年 4 月発足 ) php-users, php-dev, php-doc, phpug-admin メーリングリスト
  • 18. PHP の成功と未来 Scales :小規模サイトから Facebook/Yahoo! まで   C10k 問題 (node.js), MySQL 5.6(NoSQL   I/F), gearman Easy to learn : 言語がシンプル、ドキュメントが豊富 - 多様な要求に応えつつわかり易さを保つことが必要 - 地道な活動が重要: ローカルな PHP カンファレンス、勉強会、等 Easy to manage : 必要十分な現実的な解を提供 ( Web の進化に対応)   - キラーアプリ (WordPress など ) の存在がキー - モバイル対応( PC -> スマートフォン)がますます重要に - Web API (OAuth 2), HTML 5 などの新標準への対応