PHPerKaigi 2020 トーク一覧

他イベントOK 30分トーク

SQLServerの操作が辛い?それPHPでコマンドラインクライアント作れますよ?

富所 亮 hanhan1978
SQLServerの操作って大変ですよね。基本GUIのツールを使う必要がありますし。
MySQLみたいに、簡単にクライアントから接続できて、気軽にSQL発行出来たらなぁ...

それPHPで出来ます!
Readlineを使って、mssqlコマンドを作っちゃいましょう!
他イベントOK 30分トーク

パワポの操作が辛い?それ PHP で自動化できますよ。

めもりー m3m0r7
パワポを使用する業務、大変じゃありませんか?全スライドのフォントを整えたり、座標を調節したり、画像の配置を変えたり、本来の業務の時間を割いてやるのは時間がもったいないです。
そこで、自動化をしたいと考えたことはありませんか?でも VBA 難しいしな… と思う必要はありません。
そう PHP でパワポの生成や全スライドのフォントを整えたり、座標を調節したり、画像の配置の変更を自動化すればいいのです。
本セッションでは PHP でパワポのファイル生成をどのようにやるのかを解説します。
他イベントOK 30分トーク

ワードの操作が辛い?それ PHP で自動化できますよ。

めもりー m3m0r7
ワードを使用する業務、大変じゃありませんか?フォントを整えたり、画像の配置を変えたり、本来の業務の時間を割いてやるのは時間がもったいないです。
そこで、自動化をしたいと考えたことはありませんか?でも VBA 難しいしな… と思う必要はありません。
そう PHP でワードファイルの生成やフォントを整えたり、画像の配置の変更を自動化すればいいのです。
本セッションでは PHP でワードファイルの生成をどのようにやるのかを解説します。
他イベントOK 30分トーク

エクセルの操作が辛い?それ PHP で自動化できますよ。

めもりー m3m0r7
エクセルを使用する業務、大変じゃありませんか?方眼紙にして入力したり、セルの枠を調整したり、本来の業務の時間を割いてやるのは時間がもったいないです。
そこで、自動化をしたいと考えたことはありませんか?でも VBA 難しいしな… と思う必要はありません。
そう PHP でエクセルの生成やセルの調整などを自動化すればいいのです。
本セッションでは PHP でエクセルファイルの生成をどのようにやるのかを解説します。
他イベントOK 15分トーク

10数年続いた配信サービスの配信基盤とAPIをリプレイスしている話

juve534 juve534
私達は昨年から、10数年続いたサービスの配信基盤とAPIをリプレイスしています。
現在Adobe Media ServerとFlashで構築しているシステムを、WebRTCで再構築しています。

APIはフレームワークを使わず実装されていましたが、PHP7とLaravelの構成に作り直しています。
このセッションでは、自分たちの昨年からの歩みとして、現在のアーキテクチャになった経緯と苦労を話して行きたいと思います。
今後リプレイスする方の参考になれば幸いです。

話そうと思う技術
・WebRTC
・Laravel
・AWS
他イベントOK LT

インフラ詳しくない男がTCP/IPのハーフクローズを知った話

juve534 juve534
私は普段、TCP/IPを意識することはありませんでした。
しかし、映像配信サービスの開発に携わる中で、サーバでWebSocketの切断検知がうまくいかず、TCP/IPのハーフクローズを知りました。
そこで実体験をもとに、TCP/IPのハーフクローズを話していきたいと思います。
30分トーク

MySQL、令和時代のレプリケーション

yoku0825 yoku0825
MySQLも8.0になって、5.xの頃とはだいぶレプリケーションの定石も変わってきたような気がします。

- Non-GTIDなレプリケーションを(新規で)選ぶ理由ってある?
- master.info, relay-log.infoがどっかいった?
- Cloneプラグイン + GTIDでレプリケーションを増やすのが自動化できそう

令和時代のレプリケーション詰めて「令プリケーション」の現在を紹介します。
(このセッションは割とインフラ寄りです)
30分トーク

CTEとWindow関数で何ができるか考える

yoku0825 yoku0825
MySQL 8.0にはついにCTE(WITH句)とWindow関数が実装されました。
とはいえ「今までなかったもの」は使い方も想像がつかぬもの、どんな用途に使えるのか、そもそもCTEやWindow関数の名前をここで初めて聞いた! みたいな人もいるかも知れません。

それぞれの構文の詳解/説明や「こんなことに使えるんじゃない?」のような提案をしたいと思っています。
15分トーク

PHP Mode Kaigi

うさみけんた tadsan
PHPは多くのテキストエディタでサポートされている言語ですが、どこまでPHPに特化して編集をサポートしているかはエディタによってさまざまです。

PHP ModeはEmacs上に構築されたPHPの開発環境であり、私はPHP Modeの現行メンテナを務めています。

本トークではテキストエディタやPhpStormを含めたIDE(統合開発環境)によるPHPサポートの現状と、エディタによる開発支援機能の理想について、PhpStormやEmacs PHP Modeの実例を挙げて紹介します。

Emacsの言語編集モード(メジャーモード)は伝統的に構文要素を色付けするだけでなく、自動インデントなど比較的高度な機能が要求されます。

技術的なおもしろさとして、テキストエディタは完成されたプログラムではなく、人間がキーボードで入力する途中の不完全な状態のソースコードを対象とする必要があり、通常の言語処理系とは多少違った独特の考慮事項についても紹介します。
他イベントOK 15分トーク

Hello PHPer! I am Ansible!

kAZUYA tAKEI attakei
コンテナコンテナしている時代ですが、それでもDockerやk8sなどを使わないサーバー構成はなくなることはないでしょう。

このトークでは、AnsibleでPHP環境を構築するユースケースを紹介します。
Pythonなんて必要ないので、是非気軽に構成管理を持ち帰ってください。
LT

レガシーなJava製サービス内通貨管理システムをPHPでリプレイスした話

伊藤 本気 motokiito2
10年以上続いているとあるサービスで利用されるJava製のサービス内通貨管理システムを、PHPでリプレイスした際の話をします。

システムの規模の大きさから改修が敬遠されていたレガシーなシステムのリプレイスに踏み切った経緯や苦労した点などをお話できればと思います。

具体的には以下の内容を予定しています。
- JavaとPHPの言語仕様の違いで苦労したこと
- イケてないレガシーな実装を、仕様を極力変えずにスマートに実装しようとがんばったこと
2
他イベントOK 15分トーク

PHP5からPHP7へ移行するメリットを語る(動作スピード以外で)

さっぴー川原 sapi_kawahara
私は、何件かPHP5からPHP7移行をしてきました。
実はPHP7に移行して動かなくなるのは、実は稀なケースであり、すんなりと動きます。
PHP7は怖くないです、移行する価値は絶対にある、そんな話をしても、移行していない人は乗り気じゃない。

移行しない理由にメリットの少なさというか、早さ以外のメリットが出てこないのです!
「PHP7早くなったんでしょ?うちでは動作スピードを求められてないからねー」
「PHP7は早くなったけど、色々と無くなった(関数)んでしょ?」
「PHP7の早さだけで移行予算は組めないんだよね」

そこで早さ以外のメリットを語ってみたいと思います。
1
15分トーク

PHPによるバックエンドGraphQLサーバー構築で得た教訓

sogaoh sogaoh
だいぶ流行になってきているGraphQL、これをフロントエンドとのインターフェースに利用した、
バックエンドGraphQLサーバーの構築を機会あって経験しました。

以下のような事項に関して、この経験で得た教訓をご紹介できればと思います。
- スキーマ駆動開発のメリット・デメリット
- リポジトリパターン実装におけるスキーマから実DBへの処理クラス切り換えタイミング
- lighthouse-php の「利用のしどころ」
- このようなLaravelとの連携ツールがあってほしかった
- 通信・環境面での苦労

可能な限り、バックエンド開発者としての自分のみではなく、フロントエンド開発者・インフラ運用者、等の
複数の立場からの見解を盛り込めればと思っています。
1
他イベントOK 15分トーク

人名漢字と向きあう 〜異体字を扱ってみた〜

hamaco hamaco
東京都にある「葛󠄁飾区」と奈良県にある「葛󠄀城市」はどちらも同じ「葛(カツ)」という字が使われていますが、よく見ると文字の形が違っています。
これらの意味としては同じだけど、字形が異なる文字は異体字と呼ばれており、「沢」と「澤」のような分かりやすいものから、「はしご高(髙)」や「立つ崎(﨑)」などの細かい字形が違うものなど様々なものがあります。

日本人には切っても切り離せないこの異体字、Webで扱おうとするとなかなかハードルが高いです。
しかし、実はこの異体字を扱う仕組みは世界中で使われるようになってきており、今ではいくらか制限はありますが、Webでもこれらの漢字が扱えるようになり始めています。
このセッションでは、異体字とはなんなのか、PHPで異体字を扱うためにどんな苦労をした(している)のかを話したいと思います。

話す事
・異体字とは
・異体字がパソコン上でどう扱われているのか
・異体字と外字について
・異体字を読み書きする為の方法
・異体字をPHPで扱う時に困ったこととか
2
他イベントOK LT

GitHub PHP Function Jumper はどのように開発され、そしてストアに公開されたのか

めもりー m3m0r7
GitHub 上で PHP の関数やクラスにマウスをあてるとポップアップが表示され、該当の引数の数や、サマリを表示したりマニュアルに飛べたりする Chrome 拡張機能の GitHub PHP Function Jumper の開発の苦労話からどのように作ったのか、 Chrome Web Store への公開、そして今後の展望をノンストップでお届けします。

https://chrome.google.com/webstore/detail/github-php-function-jumpe/pmgmgaejgbjiooiklinoelilmnldlhcf
他イベントOK 15分トーク

GitHub PHP Function Jumper はどのように開発され、そしてストアに公開されたのか

めもりー m3m0r7
GitHub 上で PHP の関数やクラスにマウスをあてるとポップアップが表示され、該当の引数の数や、サマリを表示したりマニュアルに飛べたりする Chrome 拡張機能の GitHub PHP Function Jumper の開発の苦労話からどのように作ったのか、 Chrome Web Store への公開、そして今後の展望をノンストップでお届けします。

https://chrome.google.com/webstore/detail/github-php-function-jumpe/pmgmgaejgbjiooiklinoelilmnldlhcf
2
ルーキーズLT

ApacheのVirtual Hostをやめて個別にデバックできる環境をDocker Composeで作る

ぬさし nukisashineko
チームにより良いデバック環境を提供したい、そんな一心で頑張る環境整備。
どのような環境がコスパが良くて、わかりやすい設定ファイルを提供できるのか。
日々みなさんが頭を悩ませていることと思います。
開発環境でのApacheのVirtual Hostは便利ですが、php.ini等の設定が一つにまとまってしまう問題があります。
これをVirtual Hostの数だけContainerに入れてDocker Composeで設定ファイルを割り当てれば解決するのではないかということは考えたことがあるでしょう。
この力技の解法をなるべくスマートに解決してみたいと思います。

話すこと
・Apacheのhttpd.confからDocker Composeへの変換方法
・VirtualHostごとにContainerを建てるとポート番号の管理やURLが面倒になりそう
 ・→NginxでReverse Proxyを入れて解決します
  ・Debug用のポートも含め、数個のポート占領で済ませる
4
他イベントOK 15分トーク

Enumライクな定数管理機構を作ってDTOと組み合わせると幸せ

きんじょうひでき o0h_
## お伝えしたいこと
「意味を読み取りやすいコード」や「同じ事を同じ書き方で表現させる」のは、チームでの品質保持や生産性につながります。
それらの課題は、ある程度まで仕組みで解決することが可能です。

Enumぽいものは、比較的スモールに導入できる上にととても便利なので、作っちゃいましょう or 既存のモノを導入しましょう。活用事例としてDTOのお話にも触れます。
---
// users.statusが3だったら仮登録状態
if ($user->status === 3) {
こんな光景を、見た事がありますか。

PHPにはEnum型はありませんがEnumを模した実装は多くあります。
Hirakuさんの記事は読んだことのある方も多いと思いますし (https://qiita.com/Hiraku/items/71e385b56dcaa37629fe) 、myclabs/php-enumは多くのパッケージで利用されています 。
過去に私も自作しました(https://speakerdeck.com/o0h/bye-bye-magic-number)。これはCakePHP3での事例ですが、作成・導入をした結果とした感想は「メチャクチャDXが上がる」です。どこであろうと似たような表現を同じインターフェイスで扱うことで、メンバー間の書かれるコードの均質性が上がりました。
また、EnumをDTOオブジェクトと繋ぎこむとその効果は更に拡大します。
例えば「DBから取ってきた値」「ユーザーリクエストで飛んできたjsonデータ」を自然に扱えるようになります。
dereuromark/cakephp-dto dereuromark/cakephp-dtoを利用しながら「どういう開発体験がもたらされるか」について考察します
1
他イベントOK 15分トーク

もしレガシー PHP 開発会社に隕石が降ってきたら?

佐々木 鎮也 precs_sasaki
平和な日々を送っていた企業に突然隕石が降ってきたら?
鶴の一声、メテオフォール型で始まったプロジェクト。

アジャイル、クリーンアーキテクチャ、DDD、マイクロサービス・・・

守られないスケジュール、失敗の数々。
モダン技術を取り入れたプロジェクトの行く末は?

それを乗り越えて生まれ変わっていく組織の姿をお伝えいたします。
他イベントOK LT

ElasticBeanstalkのWorker環境でLaravelのキューを処理するのは案外お手軽だった件

津崎 善昭 ytzk_
「アプリケーションサーバでキューを処理していたが、キューの処理が重いのでキューを処理するだけのサーバを建てたい!」

AWS ElasticBeanstalkのWorker環境と、
キューを処理してくれる `dusterio/laravel-aws-worker`というパッケージを利用することで、
お手軽にキュー処理サーバできたよ!

という話をします!
3
phperkaigi-2019 sponsors phperkaigi-2019 potential-sponsors
情熱加点 非採択 仮採択 ルーキーズLT
仮採択 他を採択済 非採択 🤔 👍 タイテ配置👌
ジョーカー