SlideShare une entreprise Scribd logo
1  sur  18
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 への移行 ,[object Object],[object Object],[object Object],AMD64, 2GHz Windows Vista SP1 Zend/bench.php
PHP  標準リリースプロセス ,[object Object],[object Object],[object Object],[object Object],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  改善 / 変更のポイント ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend/bench.php Zend/microbench.php 43% 高速化 19% 高速化 PHP 5. 4でより速く、快適に ,[object Object]
PHP 5.4  でコード再利用 :Traits ,[object Object],[object Object],[object Object],<? 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  で構文が便利に ,[object Object],こんにちは、 <? 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] ; ,[object Object],function foo () { return array('taro',23);} $v = foo(); echo  $v[0];  // taro echo  foo()[0]; echo $foo->bar()[0]; ,[object Object]
PHP 5.4  でもう少し便利に ,[object Object],echo  0b00100 ;  //  出力:  4 function foo ( callable  $do) {} foo(“strcmp”); foo(function() {}); foo(1);  // catchable fatal error ,[object Object]
PHP 5.4  で日本語の扱いが便利に ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP 5.4  で UTF-8  がより安全に ,[object Object],[object Object],[object Object],mb_substitute_character(0xFFFD); $s = &quot;41 e09f 80 41&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) ,[object Object],[object Object],[object Object],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 のみ ) を定義 ☀
[object Object],[object Object],[object Object],PHP 5.4 :携帯電話の絵文字の例 echo mb_convert_encoding(&quot;F89F&quot;, &quot;SJIS-Mobile#SoftBank&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); echo mb_convert_encoding(&quot;F89F&quot;, &quot;UTF-8-Mobile#DOCOMO&quot;, &quot;SJIS-Mobile#DOCOMO&quot;); utf8 = mb_convert_encoding(&quot;F89F&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 ユーザ相互の情報交換およびコミュニティの健全な発展 設立趣旨 ,[object Object],[object Object],背景 国内 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  などの新標準への対応

Contenu connexe

Tendances

最近の 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 PhilosophyYuya Takeyama
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話y-uti
 
Perl logging
Perl loggingPerl logging
Perl loggingkeroyonn
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門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
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいcharsbar
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarSotaro Karasawa
 
about Thrift
about Thriftabout Thrift
about ThriftNaoya Ito
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方kwatch
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説Cherry Pie Web
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium MobileNaoya Ito
 

Tendances (20)

HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
 
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
 
PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
 
Perl logging
Perl loggingPerl logging
Perl logging
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
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ビット風ゲームをつくろう
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
about Thrift
about Thriftabout Thrift
about Thrift
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
 
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 

Similaire à PHP, Now and Then 2011

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 Talkmitamex4u
 
PHPの今とこれから2009
PHPの今とこれから2009PHPの今とこれから2009
PHPの今とこれから2009Rui Hirokawa
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerlcharsbar
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5dynamis
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + PerlNaoya Ito
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
Ruby – The Scripting Language
Ruby – The Scripting LanguageRuby – The Scripting Language
Ruby – The Scripting LanguageAkio Tajima
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returnsdynamis
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - FuncGosuke Miyashita
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
Php in ruby
Php in rubyPhp in ruby
Php in rubydo_aki
 
CakePHP3ウォークスルー
CakePHP3ウォークスルーCakePHP3ウォークスルー
CakePHP3ウォークスルーTomoki Hasegawa
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
Xml builderの紹介
Xml builderの紹介Xml builderの紹介
Xml builderの紹介Hiraku Nakano
 
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 FrameworkTadahiro Higuchi
 
Cakephp tokyo5
Cakephp tokyo5Cakephp tokyo5
Cakephp tokyo5ichikaway
 

Similaire à PHP, Now and Then 2011 (20)

Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
PHPの今とこれから2009
PHPの今とこれから2009PHPの今とこれから2009
PHPの今とこれから2009
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + Perl
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Ruby – The Scripting Language
Ruby – The Scripting LanguageRuby – The Scripting Language
Ruby – The Scripting Language
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
 
CakePHP3ウォークスルー
CakePHP3ウォークスルーCakePHP3ウォークスルー
CakePHP3ウォークスルー
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
Xml builderの紹介
Xml builderの紹介Xml builderの紹介
Xml builderの紹介
 
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
 
Cakephp tokyo5
Cakephp tokyo5Cakephp tokyo5
Cakephp tokyo5
 

Plus de Rui Hirokawa

PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023Rui Hirokawa
 
PHPの今とこれから2022
PHPの今とこれから2022PHPの今とこれから2022
PHPの今とこれから2022Rui Hirokawa
 
日本PHPユーザ会の紹介
日本PHPユーザ会の紹介日本PHPユーザ会の紹介
日本PHPユーザ会の紹介Rui Hirokawa
 
PHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッションPHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッションRui Hirokawa
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008Rui Hirokawa
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007Rui Hirokawa
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006Rui 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の今とこれから2018
PHPの今とこれから2018PHPの今とこれから2018
PHPの今とこれから2018Rui 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の今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015Rui Hirokawa
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話Rui Hirokawa
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法Rui Hirokawa
 

Plus de Rui Hirokawa (18)

PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023
 
PHPの今とこれから2022
PHPの今とこれから2022PHPの今とこれから2022
PHPの今とこれから2022
 
日本PHPユーザ会の紹介
日本PHPユーザ会の紹介日本PHPユーザ会の紹介
日本PHPユーザ会の紹介
 
PHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッションPHPの中の人によるパネルディスカッション
PHPの中の人によるパネルディスカッション
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006
 
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の今とこれから2018
PHPの今とこれから2018PHPの今とこれから2018
PHPの今とこれから2018
 
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の今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 

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.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 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.
  • 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.
  • 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 などの新標準への対応