PHP Conference Japan 2019 プロポーザル一覧

他イベントOK 60分枠

Does Your Code Measure Up?

Adam Culp adamculp
This talk will introduce tools to analyze PHP code in an automated fashion allowing developers to write better quality software. Then explain key metrics to help understand what needs to be refactored using code smells to highlight bugs before end-users discover them.
他イベントOK 60分枠

Practical PHP Deployment with Jenkins

Adam Culp adamculp
Developers and DevOps need to automate deployment but what can be automated, where to start, and what tools exist? I will show how a PHP application pulled from git, complete with unit tests, Composer dependency management, and package creation, can be deployed using Jenkins. Then leverage support by a system if the application breaks and the nightmare happens through automated rollbacks.
他イベントOK 60分枠

Putting legacy to REST with middleware

Adam Culp adamculp
We fear modernizing legacy applications, or going API first. But it's not as futile as you might think. With modern PHP microframeworks geared toward middleware it can be a breeze.

Now the truth: It is a terribly difficult task full of pitfalls. But I will share how to do it in a step-by-step method that makes it much more approachable, and enable you to be a super hero.
他イベントOK 60分枠

Hypermedia!

Adam Culp adamculp
You have a great REST API, but now your API users have no idea what it is capable of. They are forced to search documentation to know what they can do next with limited data provided in responses.

Let's talk about hypermedia for beginners, and what should be done in modern PHP REST APIs. We'll investigate standards, and the Richardson Maturity Model. Plus, I'll show tools to help you get there.
他イベントOK 60分枠

PHPに活かす!純粋関数型言語Elmのススメ

吉岡瑛一郎 yo4raw
フロントエンドの技術は日進月歩で死屍累々の怖い世界だと思っていませんか?私はそう思っていました。Elmに出会うまでは。
ElmはAltJSの一種で強い型付けかつ純粋関数型言語でありながら学習コストが低く、関数型言語に興味を持つ全ての人にオススメできる言語です。
PHPは第一級関数・高階関数の性質もあるので、関数型言語のエッセンスを活かすことが可能な言語であると同時に、関数的な考え方をしなくても実装できてしまう言語でもあります。
今回はElmを通じてPHPに活かせる関数型言語の考え方とElmの基礎をお伝えします。

【こんな人にオススメです】
array_mapやarray_filterは読めるちゃあ読めるけど、書くときはforeachやforになってしまう。
「タイプヒンティングめっちゃ助かる!」と型の重要性に気がついてしまった。
コンパイラという師匠を持ちたい。
他イベントOK 25分枠

How to begin with machine learning

Piti Champeethong ninefyi
How to use ML library to analysis data with simple use case by using php-ml.
他イベントOK 60分枠

Seatec Astronomy

Vranac Srdjan vranac
Where are your credentials and secrets stored?
In .env files or in environment variables, or even worse in config files?
Are your primary AWS keys shared amongst developers?
Do you still have SSH keys from former employees on your servers?

If your answer is "Yes" to one or more of these questions you probably haven't heard the term "secrets management"
他イベントOK 60分枠

Distributed Domain Destruction

Vranac Srdjan vranac
For the last couple of years I have been building, maintaining and fighting a
projects that make use of distributed computing, parallel processing,
message brokers, queues and workers. This is one of those "from the
trenches" talks, where I will regale you with tales about the series of
unfortunate events that may happen as your application grows in complexity.
他イベントOK 60分枠

--enable-zip が使えなくなった?それ PHP 単体で読み込めば解決できます。

めもり〜 m3m0r7
PHP 7.4 より、PHP をビルドする際に使用されるオプションである --enable-zip が正式にバンドルされなくなりました。
これにより、 PHP で zip を展開したり、読み込んだりすることにハードルが上がってしまいました。
libzip は PHP 7.3 より、libzip 自体の野良ビルドが必要であったり、 cmake のバージョン自体もあげないといけなかったり、必要なモジュール導入のハードルが高くなっていました。
PECL に移ったとはいえ、ビルドするのはなかなか敷居が高いです。ではどうしたらいいのか。何もモジュールにこだわる必要はありません。 PHP 単体で zip ファイルを読めばいいのです。本セッションでは、 PHP でどのようにして zip ファイルを読み込むのかをトークさせていただければと思います。
他イベントOK 25分枠

--enable-zip が使えなくなった?それ PHP 単体で読み込めば解決できます。

めもり〜 m3m0r7
PHP 7.4 より、PHP をビルドする際に使用されるオプションである --enable-zip が正式にバンドルされなくなりました。
これにより、 PHP で zip を展開したり、読み込んだりすることにハードルが上がってしまいました。
libzip は PHP 7.3 より、libzip 自体の野良ビルドが必要であったり、 cmake のバージョン自体もあげないといけなかったり、必要なモジュール導入のハードルが高くなっていました。
PECL に移ったとはいえ、ビルドするのはなかなか敷居が高いです。ではどうしたらいいのか。何もモジュールにこだわる必要はありません。 PHP 単体で zip ファイルを読めばいいのです。本セッションでは、 PHP でどのようにして zip ファイルを読み込むのかをトークさせていただければと思います。
他イベントOK 25分枠

PHP で JVM を実装して、 HelloWorld を出力してみる

めもり〜 m3m0r7
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
しかし、PHP は Web 系以外、例えばそう、 JVM などを実装することも可能なのです。
JVM とは、 Java Virtual Machine の略で、 中間コードにコンパイルされた class ファイルを動かすための仮想マシンのことです。
JVM は JVM Spec と呼ばれる Oracle が公開しているドキュメントがあるため実は PHP でも開発することは可能です。
30 億のデバイスで PHP が走ると思うとワクワクしますよね。
本セッションは PHP という言語の枠組みの中でどのようにして JVM のようなスタックマシンを実装したのかをトークさせていただきつつ
実際に Hello World を出力するところまでをお話できればと思っております。
他イベントOK 25分枠

PHP で バイトコードにコンパイルされた Python を動かす

めもり〜 m3m0r7
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを読み込んで何かしらを行うことも可能だったりします。
例えば mp3 の ID3 タグを取得する, zip を解凍する, jpg のメタデータを取得する、などなど。
しかし、これらは一般的にはライブラリや拡張機能が提供されていて、刺激が少ないかと思います。
そんな中で、今まで誰もやったことがなさそうなこととして PHP でバイトコードにコンパイルされた Python を動かしてみたいとは思いませんでしょうか。
私は動かしてみたいと思います。本セッションでは PHP でどのようにしてバイトコードにコンパイルされた Python を動かすのかをトークできればと思います。
他イベントOK 25分枠

「CPUとは何か」をPHPで考える

長谷川智希 tomzoh
中学生の頃にMSXというパソコンのCPUであるZ80のプログラミングを体験していました。

その約25年後、2016年にPHPで書かれたゲームボーイエミュレータのコードを読んで衝撃を受けました。ゲームボーイのCPUはZ80ベースであり、エミュレータで実装されていたのはまさにZ80の命令だったのです。この体験で、エミュレータがハードウェア仕様をソフトウェア的に表現したものであることを理解しました。

そしてさらにその3年後。名著「CPUの創りかた」で紹介されているCPU、TD4を実装し衝撃を受けました。そこに見たCPUは電気回路として表現された状態機械でした。

このトークではPHPでTD4のエミュレータを実装し、マシン語実行環境、エミュレータの対象、そして電気回路としてのCPUがどの様に動作するのかをメモリアクセスを中心に解説し、CPUの魅力をみなさまにお伝えします!
他イベントOK 60分枠

「CPUとは何か」をPHPで考える

長谷川智希 tomzoh
中学生の頃にMSXというパソコンのCPUであるZ80のプログラミングを体験していました。

その約25年後、2016年にPHPで書かれたゲームボーイエミュレータのコードを読んで衝撃を受けました。ゲームボーイのCPUはZ80ベースであり、エミュレータで実装されていたのはまさにZ80の命令だったのです。この体験を通してエミュレータがハードウェア仕様をソフトウェア的に表現したものであることを理解しました。

そしてさらにその3年後。名著「CPUの創りかた」で紹介されているCPU、TD4を実装し衝撃を受けました。そこに見たCPUは電気回路として表現された状態機械でした。

このトークではPHPでTD4のエミュレータを実装し、マシン語実行環境として、エミュレータの対象として、そして電気回路としてのCPUがどの様に動作するのかを解説し、CPUの魅力をみなさまにお伝えします!
他イベントOK 60分枠

PHPでレトロゲーム機のエミュレータを作る

長谷川智希 tomzoh
私は1980年代から1995年頃までのレトロゲーム機が大変好きです。
この頃のゲーム機は各社の工夫でどんどん進化する一方で、技術的な制約によりどのゲーム機でも同じ様な仕様になっているところもあります。

また、それ以前にゲーム機と言えどもそれはコンピュータであり、CPUについては現在のパソコンで使われている様なCPUと同じところもあります。

このトークでは私が作成したPHPベースのファミコンエミュレータ php-terminal-nes-emulator を題材に、CPUの動作原理やレトロゲーム機に共通する仕様、それをエミュレータとして実装するための設計などをお話します。

そして、エミュレータのコードが「得体の知れない難しいもの」ではなく「ハードウェアの仕様をコードで表現したもの」であり、読んで楽しく、書いてみたくなるものであることをお伝えします!
他イベントOK 25分枠

PHPでファミコンエミュレータを作る

長谷川智希 tomzoh
2016年にPHPで書かれたゲームボーイエミュレータのコードを読んで大きな衝撃を受けました。以前からCPUやメモリ、この頃のゲーム機に共通する仕様のことは知っていましたが、エミュレータのコードに見たものはそれらがそのままPHPのコードとして表現されたものだったのです!

その2年後、あるカンファレンスでファミコンエミュレータに関するトークを聞いた時に、2度目の衝撃が私を襲いました。そこで紹介されたコードは初見にもかかわらず断片を見るだけで内容が理解できたのです。

このトークではその衝撃を受けて私がPHPで書いたファミコンエミュレータを題材に、エミュレータのコードの特長や設計、そしてその魅力をCPU周りを中心にお伝えします。エミュレータは新しい言語の学習や設計の練習にちょうどよいテーマでもあります。扱う内容は簡単ではありませんが、初心者のみなさまにもお楽しみ頂けると思います!
他イベントOK 60分枠

PHPでファミコンエミュレータを作る

長谷川智希 tomzoh
2016年にPHPで書かれたゲームボーイエミュレータのコードを読んで大きな衝撃を受けました。以前からCPUやメモリ、この頃のゲーム機に共通する仕様のことは知っていましたが、エミュレータのコードに見たものはその仕様がそのままPHPのコードとして表現されたものだったのです!

そしてその2年後、あるカンファレンスでファミコンエミュレータに関するトークを聞いた時に、2度目の衝撃が私を襲いました。そこで紹介されたコードはそこで初めて見るにもかかわらず、断片を見るだけで内容が理解できたのです。

このトークではその衝撃を受けて私がPHPで書いたファミコンエミュレータを題材に、エミュレータのコードの特長や設計、そしてその魅力をお伝えします。エミュレータは新しい言語の学習や設計の練習にちょうどよいテーマでもあります。扱う内容は簡単ではありませんが、初心者のみなさまにもお楽しみ頂けると思います!
他イベントOK 60分枠

ファミコンの画面描画を知る

長谷川智希 tomzoh
ファミコンの画面は8x8ピクセルで定義されたキャラクタを敷き詰めた画像の上に同じサイズで定義されたキャラクタを重ねて描画されています。

この設計はファミコンに限らず、PCエンジン, ゲームボーイ, メガドライブ等々、多くのゲーム機に共通する設計でしたが、これには当時の技術的な制約、出力先である家庭用テレビの仕様が影響していました。

このトークでは私がPHPで書いたファミコンエミュレータ php-terminal-nes-emulator を題材に、ファミコンの画面描画の仕組みと制約・その回避を解説し、それをエミュレータでどの様に設計・実装しているのかを解説します。そして、エミュレータのコードが「得体の知れない難しいもの」ではなく、読んで楽しく、書いてみたくなるものであることをお伝えします。扱う内容は簡単ではありませんが、初心者のみなさまにもお楽しみ頂けると思います!
他イベントOK 25分枠

ファミコンの画面描画を知る

長谷川智希 tomzoh
ファミコンの画面は8x8ピクセルで定義されたキャラクタを敷き詰めた画像の上に同じサイズで定義されたキャラクタを重ねて描画されています。

この設計はファミコンに限らず、PCエンジン, ゲームボーイ, メガドライブ等々、多くのゲーム機に共通する設計でしたが、それはなぜなのでしょうか。これには当時の技術的な制約、出力先である家庭用テレビの仕様が影響していました。

このトークでは私がPHPで書いたファミコンエミュレータ php-terminal-nes-emulator を題材に、ファミコンの画面描画の仕組みと、それをエミュレータでどの様に設計・実装しているのかを解説し、エミュレータのコードが「得体の知れない難しいもの」ではなく、読んで楽しく、書いてみたくなるものであることをお伝えします。扱う内容は簡単ではありませんが、初心者のみなさまにもお楽しみ頂けると思います!
他イベントOK Lightning Talks

PHP-CS-FixerをIDEに取り込ませてPSRを強制する開発スタイル

sogaoh sogaoh
PHPの開発でコーディング規約をどうするかはどの現場でも悩ましい話だと思います。
キャメルケースにする / スネークケースにする、などある程度の選択は個々に必要になるものの、
PHP-CS-Fixerに整形を委ねるのも1つの手ではないかと思います。

現在自分が所属している開発プロジェクトではPHP-CS-Fixerを利用しているので、
利用中の課題点と自分が感じた「クセ」について、簡単にお話しできればと思います。

大規模なカンファレンスでの「初めてのスピーカー」にチャレンジさせていただければ幸いです。
  • 1 (current)
  • 2
phpcon-2018-sponsors
2018 2017 スペシャル プラチナ ゴールド シルバー ブロンズ ランチ ネットワーク サンクス
初心者向け 初めてのスピーカー インフラ