PHPカンファレンス2014に参加してきた

2014年のPHPカンファレンス

2014-10-10から前乗りでPHPカンファレンスに行ってきた!!
こんなに気合入れて岩手から参加するのも私ぐらいなものだろう。

一路、岩手から東京へ台風が来る前で助かった、
交通費結構でかくてしばらく質素な生活が続きそう。

当日は、メイン会場にほぼ一日中張り付いてケツが痛くなったけど、
時期PHPの話や、現状の話題、はやければ来年にはPHPNG(Next Generation)こと、PHP7が出るかもしれない、ちょうど間の時期でこれからどうしていけばいいのかの話題が盛り沢山でした。

ざっと書いたメモを貼り付けておきます、貼り付けただけなので随時整形していきたいと思います。

基調講演 PHPの今とこれから

https://joind.in/talk/view/12014

PHPの今とこれから2014 from Rui Hirokawa

最近のPHPの話題と現在PHPバージョンの利用率など
次期バージョンPHP5.6では何が変更になるかの解説、

HHVM(HipHop …)の解説
詳しくはこのあと行われるセッションにて

PHP言語仕様がようやく決まってきた

5.7の話題
正式リリースのPHP7はあと二年ぐらいかかるのではないか
5.7が5系最後のバージョンとして入る

PHPNGの話題
現在の開発中のものでWP3.9が15%の改善されて動作
何もしなくても今のソースコードで倍の速さになるだろう

HHVM3.3は5.6だと30%ほどの改善

PHPコアから読み解くPHP5.5

https://joind.in/talk/view/12015

PHPCore C言語によって書かれた
zend engine PHPScript 字句解析・構文解析を行なってOPコードと呼ばれるものに変換

PHP5.5の変更点

・ジェネレータ
・boolval()追加
・zend_engine最適

yield
イテレータを実装できる
データの要素にアクセスするためのしくみ
Cのポインタもイテレータ

yieldのオペコード
yieldなし 60書いた文だけ命令かかる
64命令かかる
共通部分が多いので若干処理が早くなる

yield構文のほうがusecで若干早いが誤差レベルだが、処理は遅くならない
yieldはデメリットがないので使いましょう

boolval()
true or falseを返す関数

サンプル
様々な値を(bool)でキャストする
boolval(100)でキャストする

キャストはOPcode 25個
boolval 29個

castのほうが早い
boolval()を利用するとコールバックが利用できる
処理が遅くなる
オペコードが多くなる
できる限りcastで変換しましょう

ここからだんだん難易度が上がってくる
zend_execute
オペコードを実行する関数

5.5の以前と以後で扱いが異なる、以前だとzend_executeに自分の好き勝手な関数をつっこめたけど、5.5以後は書き方が違いますよとの話。

この辺りになると言語的に中核になる部分、思ってみたらフレームワークやPHPの使い方ばかりで言語の中核に近い部分ってまともに勉強したことがないなと思う。

フリマアプリ「メルカリ」の超高速開発を支える PHP

当たり前なんだけど改めてWebサービスをどうやってリリースしていくかを再認識されられたセッションでした。

話された内容
・サーバのスケーリング
・言語選定
・開発の考え方と思想

メルカリとはフリーマーケットアプリ
実は去年はサーバ一台だけで運用していたらしい、ユーザが増えるに従ってWeb + DBの分割、LB + Web + DBとMemcacheでサーバを増強していったとのこと。今はピーク時の6000アクセス/secをさばけるような仕組みで動いているらしい。

PHP言語の選定の理由は、開発者が確保しやすかった、現実の問題を解決したいのであってモダンな技術を使うことを目的にしていない。しかもPHP遅いと言われているけどそこそこちゃんと処理できているよ。
並列処理、常駐プロセスなどは他のもので書いたほうがいい。

大切なことは最初の0から1をいかに早く限られたリソースで作るか。
丁重に作っても使われないサービスは意味がない。
そのために必要な3つの事
・迷ったら単純で低機能なものを選択
・最高だと思う6割で出す
・重要なことにフォーカスを当てる

スピード優先でも捨ててはいけないところ
・テスト(PHPUnit)
・仕様が変わるのは当たり前、入力と出力がしっかりしていればコードがひどくても何とかなる

安全なPHPアプリケーションの作り方2014 〜必要最低限のセキュリティ対策はこれだ〜

https://joind.in/talk/view/12017

<a href=”http://www.amazon.co.jp/gp/product/4797361190?ie=UTF8&camp=1207&creative=8411&creativeASIN=4797361190&linkCode=shr&tag=laddy-22”>体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践の著者である徳丸さんの講演。

相変わらずの大人気で立ち見が出るほどでした。

安全なPHPアプリケーションの作り方2014 from Hiroshi Tokumaru

HHVM + Hack == PHP++

https://joind.in/talk/view/12019

FaceBookのpaul tarjan氏の講演、tarjan氏の熱のこもった講演もすごかったけど、難しい専門用語が入っているのにあんなにすらすらと違和感なく伝えられるできる通訳の方もすげぇ。

内容は主にHHVMとHack言語の話
HHVMもHackもPHPと喧嘩しているわけではなくPHPがあった前提でHHVMのHackの開発を行なっているこれからもそうとのこと、安心してPHPを使い続けられそうです。

hiphop オープンソースプロジェクトではなかった2013 HHVM1としてからは、
オープンソースとしてプルリクエストも受け付けている。

HHVMで動作するPHPフレームワークの一覧はこちら
http://hhvm.com/frameworks/
使いたいのがなければ動かしてレポートを送るといいよ!!

HHVMの基本動作としてコードをプリコンパイルして実行、fast-cgiで動作する
magento daniel sloof
CMSなどが3倍ほど早くなっているしトランザクションのスピードも3倍
symfony 二倍ぐらいのスピードアップ

microbenchmarkじゃないほうが正しいベンチマークができるので、
以下の物を用意した https://github.com/hhvm/oss-performance/

Hack言語について http://hacklang.org/

・ほぼPHPと同じ構文
・うまくメモが取れなかったので詳しくはマニュアルで
http://docs.hhvm.com/manual/en/index.php

ここでCMS系の話が聞きたかったけど、休憩 & 企業様のブース閲覧。

LT無差別級

どの発表も PHPへの愛が感じられた(一部PHPとはあまり関係のない話あったけど)

印象に残ったのはPHPでもがんばればAIプログラミングで準優勝できるが、PHPはやめとけとのこと。。。
それでもI love PHPでなんとかなるよ。

その他

http://togetter.com/li/730389