PHP Conference Japan 2020 トーク一覧

採択 2020/12/12 12:20〜 Track1 Lightning talk (3 mins)

PHP8 on AWS lambda

有限会社アリウープ | 柏岡秀男

AWS lambda上でbrefを用いてPHP8を実行するまでを説明いたします。IAMユーザの作成からdeployまで駆け足で伝えます!

Discord Channel: #sl-alleyoop

採択 2020/12/12 12:15〜 Track1 Lightning talk (3 mins)

福岡市のお墨付き!エンジニアフレンドリー企業に選ばれたFusicの実態に迫る!

株式会社Fusic | 槇原 竜之輔

Fusicは福岡のIT企業です。
弊社ではエンジニアの技術力向上のための制度が積極的に活用されており、その制度が評価され、この度エンジニア・フレンドリーシティ福岡の企業部門で受賞いたしました。
全国各地からの採用を積極強化中なのですが、いかにFusicがPHPerのみなさまにとって働きやすい、成長出来る可能性を秘めた会社なのかを東京から移住した私が徹底的にアピールします。
採用目的です、皆さま積極的に選考へご応募ください!

Discord Channel: #sl-fusic

採択 2020/12/12 12:10〜 Track1 Lightning talk (3 mins)

Lenet の開発環境の紹介

株式会社ホワイトプラス | 古賀 敦士

ホワイトプラスが展開するネット完結型クリーニング「Lenet」のシステムでは、エンジニアが開発に集中できるように開発環境を整備しています。
本セッションでは、そのための工夫をいくつかお話しします。

Discord Channel: #sl-whiteplus

採択 2020/12/12 12:05〜 Track1 Lightning talk (3 mins)

3分で分かるConnehito Tech Vision

コネヒト株式会社 | 伊藤 翔

コネヒトはこれまでテクノロジーやエンジニアリングの力を使って成長してきました。
しかし、事業を更に成長させるためにはその流れをより速く、より強く、よりクリアにする必要があると考えました。そこでコネヒトのエンジニア組織 / 技術領域において、今後何を大事に何に投資していくか未来の構想や方向性を「Connehito Tech Vision」としてまとめました。
本LTでは、そんなConnehito Tech Visionの概要をお話させていただきます。

Discord Channel: #sl-connehito

採択 2020/12/12 12:00〜 Track1 Lightning talk (3 mins)

玩具サブスクリプション・レンタルサービスの代表の子どもたちにPHPについて語ってもらった

株式会社トラーナ | 志田典道

私達は玩具サブスクリプション・レンタルサービスの「トイサブ!」を運営しております。
2015年にサービスを開始し、2020年11月末時点で7,000名以上のお客様に、月間2万点近くのおもちゃをお客様ごとにカスタマイズして選定・お届けをしております。
日頃開発で活用させていただいているPHPに対して、これからを担う子どもたちがPHPに対してどのような考えを持っているのかを語ってもらいました。

Discord Channel: #sl-toysub

採択 2020/12/12 15:20〜 Track1 Long session (60 mins)

パネルセッション「ひさてるさんに聞け」

たなかひさてる, イアン・ブライソン, 小山哲志

少しプログラミングができるようになると、どのようにソフトウェアを設計していけばいいのか興味が湧いてくるものです。しかしソフトウェア設計の世界はなかなかに奥深く、どこから入っていけばよいのか戸惑っている方も多いのではないでしょうか。
そこでこのセッションでは、Software Design 誌での入門者向け漫画「ちょうぜつエンジニアめもりーちゃん」の連載が無事に終了し、Twitter でも同作のショート連載を続けながら、ソフトウェア設計についてのメッセージを発信しているたなかひさてるさんをお迎えします。ソフトウェア設計についての質問に答えていただき、迷っているソフトウェアエンジニアの方々の道標を見つけたいと考えています。
出演: たなかひさてる、イアン・ブライソン
司会: 小山哲志

ご質問はこちらまで!
https://forms.gle/M2XmWFCh1fNxx1FN9

Track ID: Track1-4
Discord Channel: #track1-4-panel-session

採択 2020/12/12 13:15〜 Track2 Regular session (25 mins)

自分のやりたいことやって超簡単にチームのコミュニケーションを活性化させた

Hamee株式会社 | あすみ

新卒3年目が新チームに入って皆から良くなったと感謝されることが増えました。
何が良かったの分からなかったので、改めて自己分析した話をします。
明日からできる簡単なことなので、お話きいていいなぁと思ったら是非実践してください!

Track ID: Track2-2-B
Discord Channel: #track2-2-b-hamee

採択 2020/12/12 12:40〜 Track2 Regular session (25 mins)

徳丸皆伝を狙いませんか?徳丸実務試験とPHP8上級試験の解説

PHP技術者認定機構 | 吉政忠志 ゲストスピーカー 徳丸浩先生

年末から年始にかけて開始予定のウェブ・セキュリティ実務知識試験(徳丸実務試験)とPHP8上級試験の解説をいたします。徳丸実務試験に合格して徳丸皆伝ステッカーをもらおう。稟議に使えるPHP市場データも解説。

Track ID: Track2-2-A
Discord Channel: #track2-2-a-tokumaru-exam

採択 2020/12/12 11:15〜 Track2 Regular session (25 mins)

レガシープロジェクトで、メタプログラミングを使ったPHPStan静的解析レベル上げ

弁護士ドットコム株式会社 | 小宮山 太樹

【概要】
弁護士ドットコムでも、半年くらい前にPHPStan静的解析をはじめました。

徐々に対象ファイルを増やし、現在では2000超のファイルをスキャンしています。
level0(不明なclass、関数の参照などの基本的なチェック)から段階的に厳しくして、level2(未知の全ての関数のチェック、PHPDocの検証)に上がります。

レガシープロジェクトにありがちな名前空間がない、PHPDocがないといった問題を、nikic/PHP-Parser(https://github.com/nikic/PHP-Parser)を武器に乗り越えてきました。
PHPDocで補いきれない部分は、自作のYii1フレームワーク用のPHPStan拡張で解析しています。
レガシープロジェクトで、静的解析を進めてきた方法を話します。

Track ID: Track2-1-B
Discord Channel: #track2-1-b-bengo4

採択 2020/12/12 10:40〜 Track2 Regular session (25 mins)

NewRelicプラットフォームを使ったオブザーバビリティ入門

BASE株式会社 | 川口将貴

アプリケーションのモニタリングしていますか?
デプロイした後のパフォーマンスチェックしてますか?
障害が起きてから監視ツールを眺めていませんか?

BASEでは最近、PHPで書かれているプリケーションの監視のためにNewRelicを本格的に導入しました。
NewRelicはAPMの印象が非常に強いですが他にも数多くのソリューションが存在します。
それらを使って自分達のオブザーバビリティプラットフォームを作りプロアクティブにアプリケーションをモニタリングしていくことができます。
APMに始まりNewRelic logsによるlog収集、Browserによるフロントエンドパフォーマンス監視、InfrastructureによるAWS監視、Syntheticsによる一歩進んだ外形監視。
そしてそれらの監視をNRQLというクエリ言語と組み合わせてダッシュボードにまとめて統合監視プラットフォームの構築を実現していきましょう。

Track ID: Track2-1-A
Discord Channel: #track2-1-a-base

採択 2020/12/12 12:40〜 Track1 Long session (60 mins)

長期運用を目指す『Shadowverse』におけるリファクタ事例の紹介 〜テストの導入とメンバーへの普及法〜

株式会社Cygames | 髙野 祐輝

Shadowverseはサービス5年目を迎えました。そして10年、20年続くコンテンツへと成長させていくため今なお進化を続けています。
長年の運用でゲームアップデートを繰り返す中、デバッグコストの肥大化・コードの属人化が進んでおり、「最高のコンテンツ」として高品質なアップデートを続けていくため、テストを活用したリファクタを行いました。

5年アップデートを続けてきたコードをバグなくリファクタするのは容易なことではありませんが、リファクタに寛容なプロジェクトや会社のバックアップもあり、無事にテストを導入し、ほとんどバグを出さずに一機能のリファクタをやり遂げました。

しかしこれは「一機能のリファクタにテストを導入した」だけであり、プロジェクトの成長の1歩目に過ぎません。
テストの有用性をメンバーが理解し、実際にテストを書く文化が根付いて初めて、今後も高い品質で更新を続けられるプロジェクトに進化したと言えます。

本セッションでは、「長期運用中の大規模プロジェクトコードに対しテストを導入する切り口・手法」及び「プロジェクトにテスト文化を根付かせるプロセス」について紹介します。

Track ID: Track1-2
Discord Channel: #track1-2-cygames

採択 2020/12/12 10:40〜 Track1 Long session (60 mins)

PHP WEBアプリケーション設計入門――10年先を見据えて作る

nrslib GMOインターネット | 成瀬 允宣 nrslib

本トークでは初級~中級者の PHP プログラマを対象に、中長期的な運用を見据えた WEB アプリケーションを開発するために必要な考え方や知識、具体的な実装テクニックやプラクティスをお話します。

■ Detail
あなたは今この瞬間、WEBアプリケーションの開発をすべて一任されたとしたら、困るでしょうか。

ひとつひとつの機能を作ることができたとしても、WEBアプリケーション全体を形作るとなれば、考えなくてならないことが多く出現します。

――フレームワークはどうしようか。
――ディレクトリ構造はどうしようか。

そこで本トークでは、こういった考慮事項に対する指針をお伝えすべく、WEBアプリケーションを構築する際に考慮すべきことや、実装へ落とし込む方法をお話します。

お話する内容は主に次のとおりです。

・フレームワーク選定
・レイヤードアーキテクチャ
・ディレクトリ構造と依存関係
・インフラストラクチャ層の取扱い
・データモデルとドメインオブジェクト
・テスタビリティの確保
・アプリケーション層上でのセッション情報などの取扱い
・バリデーションは誰の役目?
・エラー設計
・横断的関心毎
※サンプルはLaravelを使ったSPAを予定しています。

ここでお話することは唯一解ではありません。
アプリケーションを設計する際の道しるべとして是非お役立てください。

Track ID: Track1-1
Discord Channel: #track1-1-gmo-internet

採択 2020/12/12 10:40〜 Track6 (International) Keynote Speech

PHP 8.0: A new version, a new era

carusogabriel Gabriel Caruso carusogabriel

PHP 8 is coming, and you might be wondering: what are the new features? Have they fixed that weird bug? Is my application getting any faster? Can I support both PHP 7 and 8 versions in my library or framework? In this talk, we are going to spend some time looking at everything that has changed in PHP 8, both internally and externally, either new features and changes of behavior (Break Compatibility, you know them). As one of the Release Managers, Gabriel Caruso is going to tell you all about it, giving you the resources to get the latest major version of PHP, that is scheduled for November 2020, up and running!

Track ID: Track6-1
Discord Channel: #track6-1-php8-a-new-version

採択 2020/12/12 9:40〜 Track1 Keynote Speech

PHPの今とこれから2020

rui_hi 廣川類 rui_hi

PHPと今とこれから2020バージョンです。特に、この冬リリースされるPHP8.0の話題を中心にお送りします。

ID: Track1-K
Discord Channel: #track1-k-keynote-2020

採択 2020/12/12 16:40〜 Track1 Long session (60 mins)

ウェブセキュリティのありがちな誤解を解説する

ockeghem 徳丸浩 ockeghem

XSSやSQLインジェクション等、ウェブアプリケーションの基本的な脆弱性の知識はかなり普及しましたが、それでも広く誤解されている内容はまだ多く残っています。
本セッションでは、ウェブセキュリティのありがちな誤解を取り上げ、なぜ間違っているのか、正しい内容は何かを基礎からわかりやすく解説します。

Track ID: Track1-5
Discord Channel: #track1-5-web-security

他イベントOK Lightning talk (3 mins)

PHPerのための副業入門

sogaoh sogaoh sogaoh

自分は2019年2月に個人事業主となって以来、3つの副業案件を経験しました。
本LTでは自身の体験をもとに以下について話をできればと思います。

  • 副業を始めるための準備として何が必要か
  • 副業案件の契約締結にあたっての重要事項
  • 副業を継続していく秘訣と個人事業の将来

主力言語としてPHPを掲げ、それゆえに思い通りにいかないこともありましたが、
それなりに自身を広げ、Re:born できることを示すことができれば嬉しいです。

5
他イベントOK Regular session (25 mins)

Hackで作る堅実なアプリケーションアーキテクチャ

ex_takezawa 竹澤有貴 ex_takezawa

PHPから派生し独自進化を遂げたHackを使ったアプリケーション開発では、
PHPと異なり、静的型付け言語のような堅実なアプリケーション開発をサポートする強力な機能が多く用意されています。
本セッションではそれらを使い、アプリケーションアーキテクチャ設計と、
Hackならではの実装コードに落とし込んでいくヒントを紹介します。

5
他イベントOK Regular session (25 mins)

いざという時のためにPHPのリファクタリングツール「Rector」を手懐けておく

o0h_ きんじょうひでき o0h_

何らかの理由によって「既存のクラスやAPIの使い方が変更された、それに対応しないといけない!」という場面が、
しばしば開発の現場には発生します。
その時に、なるべく「人間の目と手で作業する」という負担は避けたい・・面倒くさいな・・と思うのが人の心情ではないでしょうか。

https://github.com/rectorphp/rector は、既存のPHPコードのリファクタリングやアップグレードを自動実行するツールです。
こいつを上手く使えれば、あの退屈で機械的な作業を真の意味で「機械の作業」にする夢が叶うかも知れません!!

本セッションでは、Rectorについて紹介し、具体的に活用するための方法を話したいと思います。

おしながき

  • Rectorってなに?
  • どういう仕組で動いてるの?
  • 具体的にどうやって使われてるの? 〜CakePHP4の アップグレードコマンドを例に〜
  • 独自ルールを作ってみる
7
他イベントOK Regular session (25 mins)

NewRelicプラットフォームを使ったオブザーバビリティ入門

dmnlk dmnlk dmnlk

アプリケーションのモニタリングしていますか?
デプロイした後のパフォーマンスチェックしてますか?
障害が起きてから監視ツールを眺めていませんか?

ライセンス形態が大きく変わり、監視プラットフォームとして使いやすくなったNewRelicを利用して
NewRelicはAPMの印象が非常に強いですが多くのソリューションが存在します。
それらを少しずつ使って自分達のオブザーバビリティプラットフォームを作り、プロアクティブにモニタリングしていきましょう。
APMに始まりNewRelic logsによるlog収集、Browserによるフロントエンドパフォーマンス監視、InfrastructureによるAWS監視、Syntheticsによる一歩進んだ外形監視。
そしてそれらの監視をダッシュボードにまとめていく、といったところまでをお伝えします。

12
他イベントOK Regular session (25 mins)

いざという時のためにPHPアプリケーションのボイラープレートを用意しておく

o0h_ きんじょうひでき o0h_

概要

「PHPで何かを作ろう」と思った時に「今風のコードを書くのに必要なもの」を考えてみました。
新しいプロジェクトをスタートする時に、「こういうのがあったら良いのでは」という案を
みなさんと共有して、知見を育みたいです。

過去に個人ブログにも投稿した内容をベースに、「狙い」や「考えたこと」を紹介します。
PHPお手軽スタートキットを作った - 大好き!にちようび

イントロ

人は、熱しやすく冷めやすい生き物です。
例えば、あなたが「あ!ちょっとこういうライブラリを作ってみよう!!」と思ったとします。
その時に、ゼロから「必要なもの」を考えますか?
「まずはphpunit.xmlを用意して、あと静的解析も入れたい。PHPStanのルールってどうやって書くんだっけ?CIも入れなきゃ・・あ〜GitHub actionsのworkflowの書き方がさぁ・・・」
そんな事に煩わされている間に、どんどんと「腰が重く」なり、「着手が遅れ」、そして「熱が冷め」てしまう。

そんな経験はありませんか?
私は、過去に何度も「README.mdだけコミットしてある空レポジトリ」を消したことがあります。

やったこと

この「腰の重さ」を支えて、「浮かんだアイディアを試すためのコードを書き始める」までを軽減したいと思ったのです。
そこで、「このくらいの要素が揃っていれば、気持ちよくPHPアプリケーションの開発をスタートできるだろう」という、
「ぼくのかんがえた さいきょうの いまっぽい PHPのツールたち」を揃えてみることにしました。

お話したいこと

まずは、「PHPアプリケーションのボイラープレート」に含めた内容を紹介します。
この内容をモチーフにして、「今日におけるPHPの開発体験を高く保つためには」というテーマに触れられたらと思います。

8