PHPカンファレンス2015にいってPHPのディープな部分を嗜み、ラジコンの人と呼ばれました。
TOP > てきとうにこらむ > ゲーム作りとプログラミング日記 > PHPカンファレンス2015にいってPHPのディープな部分を嗜み、ラジコンの人と呼ばれました。
PHPカンファレンス2015
ぼくだってぺちぱーだ!ということで、PHPカンファレンス行ってきた。どっちかというと、ディープな方向(オペコードとか、ソース)にフォーカスを当てていこうと決めてた。
セッション
見たのは以下。
- 今時のSQLインジェクションの話題総まとめ(途中まで)
- From PHP to Machine Code
- Inside CyberAgent's Game Development
- 徳丸先生に怒られない、動的SQLの安全な組み方
- いまどきのPHP開発現場 - 2015秋 -
- PHPあるあるパフォーマンス対決
今時のSQLインジェクションの話題総まとめ
徳丸先生@ockeghem。時間の関係上、途中までー。
From PHP to Machine Code
Juozas Kaziukėnasさん@juokaz。実はほとんど英語わからなかったけど、インタプリタまで作った身、内容を理解できた…と思う。
以下、個人的なメモ。
FROM PHP TO MACHINE CODE
Everyone should writea compiler once
PyHP Python + PHP
PyHP
- PHP interpreter capable of running "any" PHP program*
- Written in Python
- Very fast
- * Supports most of the basic PHP program
<?php
$a = "東京";
print $a[0] . '-' . $a[1];
?>
$ ./pyhp 東-京
- parse
- compile to
- execute
- Uses the PyPy/RPython thechnology stack
- JIT support
parse トークナイズ
Zend/zend_language_parser.y
token_get_all() php functionでtokenがみられる
Compile to opcodes
install vld extension to dump them use
IS_EQUAL if statement
execute
- iterate over a list of opcodes
- manageng memory, action
PHP IS SLOW
specialized code is fast
PHPが遅いのは動的なコードを許可しているため
JIT
just-in-time compiler
- Slower to start, likely very fast after N>1000 executions
HOT LOOPS
PLUS: all variables are integers, no need to check variable type!
THINGS TO TRY
- PHPPHP
- HHVM
What's next
PyHP.js (Python + javascript) + PHP
メモおしまい
Inside CyberAgent's Game Development
ありがとうPHP。
いまどきのPHP開発現場 - 2015秋 -
新原さん@shin1x1
ぼく、まだVim…やっぱりPhpStormがいいのかな。
PHPあるあるパフォーマンス対決
蒋池東龍さん。「PHPはどのように動くのか」という本を執筆され、オペコードを読む講演。分かりやすかったし、すごく楽しかった!
あと、PHPのArrayのBucket構造体についての質問も講演の後させてもらい、丁寧なお答えいただきました。ありがとうございました!
懇親会
Rasmusさん@rasmusと写真頂きました!ありがとうございました!
Bluetoothをつかえますかと頼み込んで許可いただきました。ありがとうございました。おかげでラジコン動かせましたー!
というかラジコン動かしてもらえて、楽しんでもらえたのかな?ありがとうございましたー