「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
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)