PHPerKaigi 2020 プロポーザル一覧

他イベントOK LT

Laravelアプリケーションを簡単にデプロイできる!Cloud Runでお手軽コンテナ運用しよう。

村田主磨 canon1ky
近年のWebアプリケーション開発において、サーバーを使うとなるとAWSやGCPを使うケースが殆どでしょう。
そんな中でもDockerやKubernetesの登場により、コンテナを開発から本番まで利用するケースが増えてきました。
しかし、Kubernetesなどは複雑な知識を必要とし、すぐに取り組むにはなかなか難しいものです。

そこで、2019年半ばに新たにGCPでサポートされたGoogle Cloud Run。
Cloud Runなら、コンテナをお手軽にリリースできるんです。

本LTでは、LaravelのコンテナをCloud Runにサクッとデプロイする流れを、ハンズオン形式でご紹介します。
他イベントOK 15分トーク

雰囲気でVPCを使ってるそこのあなたへ!AWSネットワークの基本を紐解きます。

村田主磨 canon1ky
近年当たり前の用に使われれている、AWS、GCPを始めとしたパブリッククラウドサービス。
DevOpsの概念の浸透とともに、アプリケーションエンジニアでもインフラ層を触ることはしばしば見受けられるようになりました。
しかし、そんな中でも意識する機会が少ないネットワーク。
あなたは雰囲気で触っていませんか?

弊社でEKSを使用しkubernetesクラスタをAWS上に構築したのですが、その時にネットワーク周りの様々な制約が出てきました。
その時の問題点の解決策と登場する概念を踏まえ、AWSのネットワークの基本を紐解きます。

こんな方へオススメ
・EC2を立てるときは、デフォルトVPCを使っている
・将来的にAWS上にkubernetesクラスタを構築したい
・AWSにちょっと詳しくなりたい
他イベントOK LT

PHP未経験者を育てる独自フレームワークの作り方

カンボ@沖縄 kanbo0605
弊社ではPHP未経験者の採用もやっております。その中の研修カリキュラムで独自フレームワークを作ってもらっており、研修用のPHP独自フレームワークの作り方を一挙公開します!
具体的に自作する内容は下記です。
- routing
- CSRF対策
- Cotroller
- Model
- バリデーション
1
他イベントOK 15分トーク

Azure Functionsを利用したServerless Architecture

清家史郎 seike460
普段AWSを懇意に利用している私がふとしたきっかけでAzure Functionsを利用する事になりました。

せっかくなのでAWS Lambdaとの勝手の違いをAWS エンジニア目線からお届けしようと思います。

PHPerKaigai2020が行われている頃には紆余曲折して悩み、苦しみ、答えを出している頃です。

その経験を赤裸々にお話しようと思います。

・想定する聴講者
 - Serverlessに興味のあるWEBエンジニア
 - AWSを利用しているクラウド系エンジニア
 - Azureに興味のあるクラウド系エンジニア

・お話する内容
 - AWS LambdaとAzure Functionsの違い
 - 構築するうえで感じたクラウドリソースの違い
 - Azure Functionsのメリット、デメリットの主観
 - 紆余曲折の内容を話せる範囲で

・お話しない内容
 - Azureゴリゴリのエンジニアに向けた話
 - Azure Functionsを利用する上での答え
1
他イベントOK 15分トーク

Serverless Pattern

清家史郎 seike460
Serverlessは一般化してきています。

Serverless においてある程度決まったPatternがあります。

ServerlessなArchitectureを組むことでそのシステムはどの様なメリットを享受出来るのでしょうか。

今回はAWSを利用したServerless Patternを適用することで、
そのシステムが享受出来るメリットと構築する上での注意点を解説します。

・想定する聴講者
 - Serverlessに興味のあるWEBエンジニア
 - AWSを利用しているクラウド系エンジニア

・お話する内容
 - AWS Lambdaを中心としたServerless Pattern
 - Serverless Patternを構築するうえで考えるべきAWSリソースの特徴
 - Serverless Patternを構築することで得られるメリット
 - Serverless Patternを利用するうえで注意すべき事項

・お話しない内容
 - GCP、Azureの話
 - PHPを利用したServerless Pattern
他イベントOK 30分トーク

PHP Serverless Pattern

清家史郎 seike460
Serverlessは一般化してきています。

一方でPHPにおいてServerlessをどの様に構築するのかはまだ確固たるものは固まっていないと思います。

PHPにおいて、ServerlessなArchitectureを組むのはどの様な課題があるのでしょうか。
その課題を正しく認識して、解決することでServerless PHPの事例が増えるのではないかと考えます。

今回は主にAWSを利用してServerless Patternを適用して、その課題を解決するお話をしたいと考えています、

・想定する聴講者
 - Serverlessに興味のあるWEBエンジニア
 - AWS、GCP、Azureなどを利用しているクラウド系エンジニア

・お話する内容
 - AWS Lambdaを中心としたServerless PatternのPHP版
 - Serverless Patternを構築するうえで考えるべきAWSリソースの特徴
 - Serverless PatternをPHPで構築する上での課題
 - 上記を課題を解決する為の私の考える解法

・お話しない内容
 - GCP、Azureの込み入った話
 - 課題に関する「完全な」答え
1
他イベントOK 15分トーク

Rectorを使って既存コードのupgradeをもっと手軽に

きんじょうひでき o0h_
‪https://github.com/rectorphp/rector は、既存のPHPコードのリファクタリングやアップグレードを自動実行するツールです。‬

‪フレームワークのバージョンアップをした、IDEを本格的に導入し始めた、新しいバージョンのPHPを使い始めた・・・開発を続けていると、色々な場面で「コードの書き方を変える必要が出て来た」「今までの書き方だと足りていない」という問題が発生します。かといって、膨大な量の(しかも退屈な!)書き換えを行うのは、なかなか気の進まない作業です。‬

‪rectorを利用すると、設定したルールに従い簡単な書き換えを自動的に実施できます!‬

‪ツールの概要や使い方、独自のルール作成の方法を紹介したいと思います。‬また、php-parserの動かし方についても言及しながら、「rectorは内部で何を行なっているのか?」というイメージを掴むことで、この不思議でパワフルなツールが皆さんにとって「怖くないよ!」といえるような、手助けになればと思います。
他イベントOK 15分トーク

PHPUnitでテストダブルについて考える

きんじょうひでき o0h_
PHPUnitは、PHPソフトウェアのデファクトスタンダードとも言えるテストフレームワークです。それを利用して、どんなテストが書けるでしょう?
昨今のアプリケーションの開発は、より「責務」について重んじるようになり、それぞれの境界線を明確にする意欲が高まっているように感じます。そのため、開発者が「このテストは、何が出来れば(⇔何が出来なくて)良いんだっけ」を考えるのは正しい姿勢でしょう。

皆さんも、「モック」や「スタブ」が好きですよね。PHPUnitには、いくつかの「テストダブル 」の機能がサポートされています。このセッションでは、具体的なコード例を用いて、「やりたいテストを表現するための素敵な方法はないのかな」「どうしてこういう機能があるのかな」について考えてみたいと思います。
1
他イベントOK LT

PHPでOSSを公開する時に気をつけている「これは整えたい」

きんじょうひでき o0h_
自作したソフトウェアを世の中に公開する時に考えることは何でしょう?
そのPJが解決する課題やコード自体の品質・機能はもちろんのこと、「オープン」しているからには、色んな人に関わってもらいたい!というのは、誰しも思うことではないでしょうか。
いくつかのPHP製OSSに取り組む中で気付いた、「こうしたらコントリビューターにとって便利かも」という点をお話したいと思います。

このセッション内では「良いコードの作り方」のようなトピックは扱いませんが、
これから初めてOSSを作りたい!発信したい!という人に、お届けしたい内容です。
3
他イベントOK 15分トーク

レガシーなPHPアプリケーションにLaravelを導入するのは間違っているだろうか

手島 尚人 mao_sum
皆さん、Laravelは大好きですか?私は大好きです。
皆さん、オレオレフレームワーク使ってますか?私は使っています。

今やPHPでWEBアプリケーションを作るならLaravelが候補に挙がるくらいには有名になりましたが、それはあくまでも新規案件のお話。
今回ご紹介するのは、レガシーなPHPアプリケーションにLaravelを導入したお話です。

しかしながら、一言に導入すると言っても、それは簡単な話ではありません。
いきなり全部のコードを入れ替えるわけにもいきません。
既存のサービスを止めるわけにもいきません。
Laravelは導入するけど、既存の資産はそのまま使いたい…!
などなど、いろいろな要望や懸念があるかと思います。

そんな中、私が担当するPHPアプリケーションでLaravelを導入するために取った戦略とは…!?

本セッションでは、以下のことを実際の実装を見つつハートフルにお伝えする予定です。
- レガシーアプリケーションにLaravelを入れるまでの苦労話について
- どのようなハマりポイントがあったかについて
- Laravelのどの機能を使っているのかについて
- プレーンなLaravelと比べて制限される機能について

Laravelをレガシーアプリケーションに導入してみたい方、どんな構成になっているのか気になられた方、どなたでも構いません。
ご興味を持たれた方はぜひご参加ください!!
他イベントOK 30分トーク

ぼくのかんがえたさいつよQueryBuilder

若葉 章 effy_staffs
世にはEloquentやDoctrineなど多くのDBIとそれに付随するクエリビルダーがあります。

ですが、実案件上では次の課題があり、痒いところに手が届き切らない面がありました。
・特定フレームワークと密結合なため、既存案件に導入できない
・メソッドの切り口がクエリの見た目に沿っているため、「だったら生で書けばいいじゃん」と言われがち
・文字列表現を使わないと表現できないクエリがある
・クエリの再利用は一度テキストに落とさないとならない
・妙な所でインジェクションができるし、それを推奨するかのようなインターフェースがある

そこで、15年以上商用でPHPを使用した知見を活かし、クエリビルダーを開発しました。

このセッションでは上記課題を解決し、様々な現場で導入しやすいクエリビルダーについてご紹介します。
他イベントOK 30分トーク

実用クエリビルダの構築から見る再利用しやすい集約の作り方

若葉 章 effy_staffs
[fw3/io](https://github.com/fw3/io/)で使用しているクエリビルダはクエリのすべての要素をオブジェクトで制御しています。

これはクエリの各要素が独立し、自身の関心ごとの枠内で文字列を構築すればよい特性があるためです。

このセッションでは実用クエリビルダの構築から得た再利用しやすい集約を作るためのクラス、インターフェース、トレイトの切り方についてお話します。
他イベントOK 30分トーク

マルチパラダイムモデリング 〜異なるモデリングパラダイムから見るモデリングの勘所〜

a-suenami a_suenami
現在では PHP も立派なオブジェクト指向パラダイムを持つ言語のひとつとなりました。しかし、オブジェクトとは一体何でしょうか?

モデリングパラダイムとしてはオブジェクトの他にもデータモデルの設計によく使われるERモデルやリレーショナルモデル、または関数型言語のベースになっているラムダ計算などがあります。

本発表ではオブジェクトとは抽象データ型であるという立場を基本とし、その他のモデリングパラダイムとどのような共通点・相違点があるのか考察し、異なるモデリングパラダイムの間に生じてしまうインピーダンスミスマッチをどのように最小化していくかについて述べていきたいと思います。
1
30分トーク

レンサバけもの道

uzulla uzulla
PHPといえばレンタルサーバー、そういう時代がありました。いや今もあります。

数多くのサイトを提供しているレンタルサーバーは、PHPerKaigiのようなカンファレンスにいらっしゃる「エンジニア」な人たちには少々嫌われているような気がします。おっしゃることはわかります、私も人に手放しで勧めたりはしません。

しかし、私はレンタルサーバーが好きです。

長らくCMS実行環境としてしか見られていないレンタルサーバーですが、時代が進むにつれ、あれ?これっていいんじゃないの?もしかしてワンチャンあるのでは?という魅力も増えていると私は考えています。

いま一度私とレンタルサーバーを見つめてみましょう。

話す事
・PHPer目線で見る、レンタルサーバーの強みと弱点
・レンタルサーバーをPHPerとして活用するテク
・モダン(?)なデプロイと開発、運用
・VPSからレンサバにアプリを移管する話

話さないこと
・WordPressなどのCMSに関係すること
・定番フレームワークがどうたらこうたら

想定聴講者層
・上記にピンときた人
・レンタルサーバーをつかったことがない、最近つかっていない人
・レンタルサーバー業者の人

非想定聴講者層
・マイノリティな好奇心や探究を、マジョリティでないだけで最大公倍数的な優劣と考えてしまう人
・フレームワークのフレームに完全にはまっている人
・業者から最悪Banされることに耐えられない人
4
他イベントOK 15分トーク

Inside SWOOLE:非同期処理はどのようにして動くのか

小山哲志 koyhoge
最近注目を浴びているPHPの非同期処理機能拡張が「Swoole」です。Swoole を利用することで、PHP単独では実現不可能だった同時並列処理が実現できます。
では Swoole の非同期処理は、一体どのように実装されているのでしょうか?
本セッションでは Swoole のC++ソースコードの奥深くまで探索し、非同期処理がどのように実現されているかを解説します。
このセッションを聞けば、ブラックボックスの魔法のようだった Swoole がより身近になり、中で何が起きているか容易に想像できるようになるでしょう。
4
LT

PHPでleetCodeのeasyレベル100問ノック

yamotuki yamotuki
PHPでも競技プログラミングは学べるんだ。
競技プログラミングのズブの素人が、PHPで簡単な問題を中心に100問やってみた結果を共有する。
PHPの懐は広い。便利関数を使って楽できることもある。しかし便利関数の裏の動きを想像しないと実行が遅すぎたりするのだ。
3
他イベントOK LT

Rectorを使って既存コードのupgradeをもっと手軽に!

きんじょうひでき o0h_
https://github.com/rectorphp/rector は、既存のPHPコードのリファクタリングやアップグレードを自動実行するツールです。

フレームワークのバージョンアップをした、IDEを本格的に導入し始めた、新しいバージョンのPHPを使い始めた・・・開発を続けていると、色々な場面で「コードの書き方を変える必要が出て来た」「今までの書き方だと足りていない」という問題が発生します。かといって、膨大な量の(しかも退屈な!)書き換えを行うのは、なかなか気の進まない作業です。

rectorを利用すると、設定したルールに従い簡単な書き換えを自動的に実施できます!

ツールの概要や使い方、独自のルール作成の方法を紹介したいと思います。
他イベントOK 15分トーク

今だからこそ振り返る register_globals

gongo gongoZ
かつて

Q.「セキュアなWebアプリケーションを作るにはどうすればいいか」
A.「まず PHP を避ける」

とまで言わしめた 古い PHP が活躍していた時代、その中心的機能である register_globals を知っていますか。この機能を on にしたが最後、リクエストパラメータは問答無用でグローバル変数に展開されてしまうという、お手軽且つ凶悪な機能でした。変数汚染攻撃の温床ともなり、「PHP is 脆弱性」とまで言われるようになった所以です。

そんな register_globals も PHP 5.4 で姿を消し、この機能を使ったことのある人の方が少ない時代になっていると思います。
しかし、そんな時代だからこそ皆さんと振り返っていきたいです。

・ register_globals とはどんな機能なのか
・ ドキュメントには載っていない register_globals の動き
・ PHP 5.4 以上でも使える! register_globals
2
他イベントOK 30分トーク

もっと気軽にOSSにPRを出そう!

DQNEO(ドキュネオ) DQNEO
OSSにPRを出すのは、すごいエンジニアや上級者がやることだと思っていませんか?
そんなことは全くありません。
たとえあなたがエンジニアになりたてだったとしても、そのOSSを使ったことがなくても、PRを出すチャンスはあります。

本トークでは、私が過去に数々のPHPライブラリに対して送ってきたPRを紹介しながら、PRを送りつけるときの心構えやチャンスの探し方を紹介したいと思います。

OSSの例:

* Symfony
* Guzzle
* AWS-SDK-for-PHP
* Monolog
* Ethna
* DietCake

本トークを聞けば、
「あ、こういうところにチャンスがあるのか」
「自分もやってみよう」
という気持ちになれるかもしれません。

その結果、PHPのエコシステムがどんどん良くなるといいなと思っています。
10
他イベントOK 15分トーク

一切開発に手を出さずに言葉と資料でドメイン駆動設計を布教した

しろぐちゆうま yu_mashirou
ドメイン駆動設計をどのようにして知ってもらい、文化を広めるというのは非常に難しいです。
色んな手法で広めていくと思うのですが、今回私が行ったのは「言葉と資料」で駆動設計をプロダクトに盛り込むことにしました。
今回はドメイン駆動設計を布教した一連の流れをお話できればと思います。

ドメイン駆動設計を社内で布教したい、実践でやってもらいたいという方へ一例として知見に貯めていただければと思います。
phperkaigi-2019 sponsors phperkaigi-2019 potential-sponsors
仮採択 情熱加点 非採択
仮採択 他を採択済 非採択