phpcon2017 セッションまとめ(11:00～)

日本最大のPHPイベントである[PHPカンファレンス2017][phpcon]は10月8日に大田区産業プラザ PiOで開催されます。このイベントの特徴は入場無料で同時、最大6セッション・1スポンサートーク・1ワークショップが並列で開かれること。

この記事では、各セッションの発表の概要および注目すべきポイント、予習のため発表者の過去のスライドなどを私見でまとめます。

[phpcon]: http://phpcon.php.gr.jp/2017/

## 11:00 (6セッション)

### [Apache Kafkaによるスケーラブルアプリケーション開発](https://joind.in/event/japan-php-conference-2017/session02-apache-kafka)

> 大規模なアプリケーション、ビッグデータ処理に欠かせないApache Kafkaを使い、PHPを使った大きなアプリケーションやマイクロサービスアーキテクチャに対してどの様にアプローチすべきか、大きなアプリケーションで起こる問題をどうやって解決していくかを実例を交えながら探るセッションです。

* 発表者
    * 株式会社アイスタイル 竹澤有貴 @ytake
* 会場
    * 1F大展示ホール
* 過去の発表
    *  [Presentations by yuuki takezawa // Speaker Deck](https://speakerdeck.com/ytake)
* キーワード
    * [Apache Kafka](https://kafka.apache.org/)
    * [Microservices](https://martinfowler.com/articles/microservices.html)

7月に開催された[PHPカンファレンス関西2017](https://2017.kphpug.jp/)で発表された[PHPで支える大規模アーキテクチャ](https://speakerdeck.com/ytake/phpdezhi-eruda-gui-mo-akitekutiya)の内容を予習しておくと理解が深まりそう。

### [OPcache の最適化器の今](https://joind.in/event/japan-php-conference-2017/session15-opcache-)

> PHP 7 がリリースされてから、もうすぐ 2 年になります。PHP 7 では処理系内部の大胆な改造による大幅な高速化が話題になりましたが、PHP 7 のリリース後も、OPcache に実装された最適化器の改善等によって、さらなる高速化に向けた取り組みが継続的に続けられています。
本セッションでは、PHP 7 以降での OPcache の最適化器について、コードリーディングを通して調査した内容を報告し、さまざまな改善の積み重ねによって PHP の実行速度が向上していく様子を共有します。

* 発表者
    * Yuji Uchiyama @y-uti
* 会場
    * 2F小展示ホール
* 過去の発表
    * [y_uti のブログ](http://y-uti.hatenablog.jp/)
* キーワード
    * [OPcache](http://php.net/manual/ja/book.opcache.php)

PHPの良好なパフォーマンスを担保するための最適化を担保してくれるのがこのOPcache。

### [OpenID Connectを通じてWebアプリケーション技術とPHPによる実装を学ぼう](https://joind.in/event/japan-php-conference-2017/session12-openid-connectwebphp)

> 認証・認可技術にはフロントエンドからバックエンドまでWebにおける基礎技術が多く用いられています。ID連携のデファクトスタンダードであるOpenID Connectを実装することで、Webアプリケーション開発に必要な基礎から応用までの技術とセキュリティ技術が学べます。認証・認可・Web API・暗号化など各技術の解説と具体的なPHPの実装例をご紹介します。

* 発表者
    * 倉林 雅
* 会場
    * 4Fコンベンションホール梅 (手前側)
* 過去の発表
    * [Masaru Kurahayashi’s Presentations on SlideShare](https://www.slideshare.net/kura_lab/presentations)
* キーワード
    * [OpenID ファウンデーション・ジャパン](http://www.openid.or.jp/)
    * [OpenID Connect](http://www.openid.or.jp/document/#op-doc-openid-connect)

[認証](https://ja.wikipedia.org/wiki/%E8%AA%8D%E8%A8%BC)・[認可](https://ja.wikipedia.org/wiki/%E8%AA%8D%E5%8F%AF_(%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3))はWebアプリケーションの連携のために重要な概念。

### [PHP初心者セッション](https://joind.in/event/japan-php-conference-2017/session18-php)

> PHPの初心者のために、PHPの動作の仕組み、PHPの書き方、マニュアルの味方、どこから手をつけたらいいのか。基本を抑えた後の進め方などを話します。

* 発表者
    * Hideo Kashioka
* 会場
    * 4Fコンベンションホール鶯 (奥側)
* 過去の発表
    * [Hideo Kashioka’s Presentations on SlideShare](https://www.slideshare.net/kashioka/presentations)
* キーワード
    * [PHPマニュアル](http://php.net/manual/ja/index.php)

昨年に続いての初心者向けセッション。

### [できるPHP7アップグレード](https://joind.in/event/japan-php-conference-2017/session22-php7)

> PHPを利用したウェブサイトの約66%(※1)は、セキュリティサポートの切れたPHP5.5以下のバージョンを利用しています。
> アップグレードの必要性は理解していても、後方互換性のない変更点の修正が課題となり後回しにする現場も少なくないでしょう。
>
> 先日ホームページ作成サービス「グーペ」をPHP5.2から7.1へアップグレードし、そこから得られた知見をブログ(※2)にて公開しました。
> 本セッションではブログでお伝えきれなかった内容を加えて、安全かつ短期間でアップグレードする方法をご紹介します。
>
> ※1 https://w3techs.com/technologies/details/pl-php/all/all
> ※2 http://tech.pepabo.com/2017/06/21/goope-php71-upgrade/

* 発表者
    * GMO ペパボ バーチー @hypermkt 
* 会場
    * 3F特別会議室
* 過去の発表
    * [Presentations by hypermkt // Speaker Deck](https://speakerdeck.com/hypermkt)
* キーワード
    * [PHP: PHP 5.6.x から PHP 7.0.x への移行 - Manual](http://php.net/manual/ja/migration70.php)
    * [グーペのPHPバージョンを5.2から7.1にアップグレードしました - ペパボテックブログ](https://tech.pepabo.com/2017/06/21/goope-php71-upgrade/)

### [PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム](https://joind.in/event/japan-php-conference-2017/session25-postgresqlpgroongaphp)

> PHPマニュアルは日本語にも翻訳されていますが、検索機能が限定的なため、せっかくの説明を活用しきれません。基本の検索機能は関数やクラス名の検索機能しかないため「正規表現」で正規表現の使い方を検索できません。サイト内検索機能では「@」でエラー制御演算子を検索できません。
この講演ではPHPマニュアルをより活用するためのPHPマニュアル高速全文検索システムを紹介します。このシステムはPostgreSQLとPGroongaを利用して実現しています。

* 発表者
    * 須藤功平 @kou
* 会場
    * 1F 会議室A
* 過去の発表
    * [Kouhei Sutou’s Presentations on SlideShare](https://www.slideshare.net/kou/presentations)
* キーワード
    * [全文検索](https://ja.wikipedia.org/wiki/%E5%85%A8%E6%96%87%E6%A4%9C%E7%B4%A2)
    * [Groonga](http://groonga.org/ja/)
    * [PostgreSQL](https://ja.wikipedia.org/wiki/PostgreSQL)

[PHPマニュアル](http://php.net/manual/ja/index.php)は完全一致では検索できるものの、部分一致や記号を含めた検索ができないので不便。

## まとめ

個人的な雑感による難易度順に並べて、どんなひとにおすすめか書いた。上の方が初心者向け、下の方が難しそう。

1. 『PHP初心者セッション』
    * PHPのコーディングに不慣れなひと
    * プログラミング入門者
2. 『できるPHP7アップグレード』
    * PHP5系のコードベースを7に移行したいひと
    * PHP5環境での開発がつらいひと
3. 『PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム』
    * 全文検索システムを構築したいひと
4. 『OPcacheの最適化器の今』
    * PHPのパフォーマンス改善に関心があるひと
    * 言語処理系の最適化に興味があるひと
5. 『OpenID Connectを通じてWebアプリケーション技術とPHPによる実装を学ぼう』
    * Webアプリケーションの連携を検討するひと
6. Apache Kafkaによるスケーラブルアプリケーション開発
    * 大規模なWebアプリケーションの設計・開発に携るひと
    * PHPでビッグデータ活用に取り組みたいひと
    * MicroServicesを取り入れたいと検討してるひと

## あとがき

この調子であと何セッションまとめればいいんだ… 体力が残ってたら明日また続き(11:35～)を書きますね。