「PHPの中の人によるパネルディスカッション」
PHP Conference Japan 2010
25 September 2010
16:50-17:35
“Under the Hood of PHP”
Panel Discussion by Core PHP developers
[T-9]
Panelist:
Rasmus Lerdorf
Masaki Fujimoto
Yasuo Ohgaki
Moriyoshi Koizumi
Masahiro Takagi
Yoshio Hanawa
Moderater: Rui Hirokawa
Topics
 PHPの好きなところ(気に入らないところ)
What I like or doesn't like about PHP
 PHP開発関連の最近のトピックス
Recent topics in PHP internals
Toward release of PHP.Next (5.4?)
Annotation
Strict (scalar) type hinting
 PHPのこれから
Future of PHP
 Multibyte encoding support / i18n of PHP
 Decision making in PHP development
 Documentation quality
 Q&A
PHPの好きなところ、いまいちなところ
Panelist:
ラスマスさん Rasmus Lerdorf
ふじもとさん Masaki Fujimoto
大垣さん  Yasuo Ohgaki
もりよしさん Moriyoshi Koizumi
高木さん  Masahiro Takagi
hnwさん Yoshio Hanawa
 What I like or doesn't like about PHP
4.0
4.1
・エンジン大幅強化/OOP:ZE1
・PEAR
2000 2001
・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
・バグ修正
4.4.9
`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
・Namespace
・Closure
・late static binding
・GC improvement
・intl/phar/fileinfo
・MySQLnd
Toward release of PHP.Next
5.4?
・Annotation
・Traits
・(Scalar Type hinting)
- Speed Improvements
- Improved memory usage
- Removed legacy features
- etc...
- `10/3
Recent topics in PHP internals(1)
h
Annotations : http://wiki.php.net/rfc/annotations
- アノテーション:関連情報(メタデータ)を注釈として付与
- Java, .NET 等でサポート
- コメントとは異なり、プログラム/パーサに作用
namespace AppAnnotation;
class Link extends ReflectionAnnotation {
public $url;
public $target;
}
[AppAnnotationLink(url="http://www.php.net", target="_blank")]
class PHPWebsite {
/* ... */ 
}
Recent topics in PHP internals(2)
h
http://wiki.php.net/rfc/typecheckingstrictonly
- 関数/メソッドにおける厳密な型チェック:
Strict Type Checking for Scalars
<?php
function show(float $v) {
echo $v."n";
}
for ($i=1;$i<10;$i++) {
show($i/2);
}
?> 0.5
Catchable fatal error: Argument 1 passed to show()
must be of the type double, integer given, called in
t1.php on line 6 and defined in t1.php on line 2
Multibyte encoding support in PHPMultibyte encoding support in PHP
Web Browser
PHP script
http_input
http_output
script_encoding
internal_encoding
file system
(file system
encoding)
binary data
sendmail
mb_send_mail()
mbstring. ignored
data
mb_convert_encoding()
DB
DB
(connection
based)
zend_multibyte
ZendEngine
engine: libmbfl + oniguruma (regex)
(declined) PHP6 Unicode support(declined) PHP6 Unicode support
Web browser
PHP script
http_input_encoding
output_encoding
script_encoding runtime_encoding
file system
filesystem_encoding
Unicode string
binary string
fallback_encoding
stream
stream_encoding
UTF-16
cookie_encoding
DB
PDO
(DB,Tab,Col)
unicode. ignored
engine:ICU
Decision process forDecision process for
PHP developmentPHP development
Rasmus Lerdorf Andi Gutmans
Andrei Zmievski
CVS accounts >1500(15)CVS accounts >1500(15)
Core >130(5)
PHP Group:10
- ML: php.internals
- RFC process: http://wiki.php.net/rfc
Documentation qualityDocumentation quality
Rasmus Lerdorf Andi Gutmans
- PHPの普及は優れたドキュメントが大きく貢献
Documentation is so important for the popularity of PHP
- 翻訳も含めて、ドキュメントの品質を改善するための
 活動は?
  How to improve the quality of documentation ?
(including translation)

PHPの中の人によるパネルディスカッション

  • 1.
    「PHPの中の人によるパネルディスカッション」 PHP Conference Japan2010 25 September 2010 16:50-17:35 “Under the Hood of PHP” Panel Discussion by Core PHP developers [T-9] Panelist: Rasmus Lerdorf Masaki Fujimoto Yasuo Ohgaki Moriyoshi Koizumi Masahiro Takagi Yoshio Hanawa Moderater: Rui Hirokawa
  • 2.
    Topics  PHPの好きなところ(気に入らないところ) What Ilike or doesn't like about PHP  PHP開発関連の最近のトピックス Recent topics in PHP internals Toward release of PHP.Next (5.4?) Annotation Strict (scalar) type hinting  PHPのこれから Future of PHP  Multibyte encoding support / i18n of PHP  Decision making in PHP development  Documentation quality  Q&A
  • 3.
    PHPの好きなところ、いまいちなところ Panelist: ラスマスさん Rasmus Lerdorf ふじもとさん Masaki Fujimoto 大垣さん Yasuo Ohgaki もりよしさん Moriyoshi Koizumi 高木さん  Masahiro Takagi hnwさん Yoshio Hanawa  What I like or doesn't like about PHP
  • 4.
    4.0 4.1 ・エンジン大幅強化/OOP:ZE1 ・PEAR 2000 2001 ・mbstring統合 ・性能改善 - 入力セキュリティ改善 4.2 ・自動グローバル変数のデフォルト無効化 ・mbregex ・zend-multibyte 20022003 2004 2005 2006 2007 2008 2009 4.3 ・CLI ・stream 4.4 `02/12 `02/4 `01/12 `00/5 `05/6 ・バグ修正 4.4.9 `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 ・Namespace ・Closure ・late static binding ・GC improvement ・intl/phar/fileinfo ・MySQLnd Toward release of PHP.Next 5.4? ・Annotation ・Traits ・(Scalar Type hinting) - Speed Improvements - Improved memory usage - Removed legacy features - etc... - `10/3
  • 5.
    Recent topics inPHP internals(1) h Annotations : http://wiki.php.net/rfc/annotations - アノテーション:関連情報(メタデータ)を注釈として付与 - Java, .NET 等でサポート - コメントとは異なり、プログラム/パーサに作用 namespace AppAnnotation; class Link extends ReflectionAnnotation { public $url; public $target; } [AppAnnotationLink(url="http://www.php.net", target="_blank")] class PHPWebsite { /* ... */  }
  • 6.
    Recent topics inPHP internals(2) h http://wiki.php.net/rfc/typecheckingstrictonly - 関数/メソッドにおける厳密な型チェック: Strict Type Checking for Scalars <?php function show(float $v) { echo $v."n"; } for ($i=1;$i<10;$i++) { show($i/2); } ?> 0.5 Catchable fatal error: Argument 1 passed to show() must be of the type double, integer given, called in t1.php on line 6 and defined in t1.php on line 2
  • 7.
    Multibyte encoding supportin PHPMultibyte encoding support in PHP Web Browser PHP script http_input http_output script_encoding internal_encoding file system (file system encoding) binary data sendmail mb_send_mail() mbstring. ignored data mb_convert_encoding() DB DB (connection based) zend_multibyte ZendEngine engine: libmbfl + oniguruma (regex)
  • 8.
    (declined) PHP6 Unicodesupport(declined) PHP6 Unicode support Web browser PHP script http_input_encoding output_encoding script_encoding runtime_encoding file system filesystem_encoding Unicode string binary string fallback_encoding stream stream_encoding UTF-16 cookie_encoding DB PDO (DB,Tab,Col) unicode. ignored engine:ICU
  • 9.
    Decision process forDecisionprocess for PHP developmentPHP development Rasmus Lerdorf Andi Gutmans Andrei Zmievski CVS accounts >1500(15)CVS accounts >1500(15) Core >130(5) PHP Group:10 - ML: php.internals - RFC process: http://wiki.php.net/rfc
  • 10.
    Documentation qualityDocumentation quality RasmusLerdorf Andi Gutmans - PHPの普及は優れたドキュメントが大きく貢献 Documentation is so important for the popularity of PHP - 翻訳も含めて、ドキュメントの品質を改善するための  活動は?   How to improve the quality of documentation ? (including translation)