LT

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

o0h_ きんじょうひでき

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

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

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

ツールの概要や使い方、独自のルール作成の方法を紹介したいと思います。

15分トーク

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

yu_mashirou しろぐちゆうま

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

ドメイン駆動設計を社内で布教したい、実践でやってもらいたいという方へ一例として知見に貯めていただければと思います。

30分トーク

PHPerがインフラを兼務することで見えるもの

yu_mashirou しろぐちゆうま

みなさんはインフラ(またはクラウド)の構築、運用、整備を行ったことはありますか?
普段、サーバサイドエンジニアがインフラを兼任することはあまり多いケースではないと思います。
今回その多くないケースを踏み、インフラ面を兼務したことで得た利点、課題点、発展をそれぞれお話できればと思います。

インフラエンジニアという人の仕事がどういった業務を行い、私達サーバサイドがあまり気にしていなかったことや、気がかりだったところ等、
サーバサイドの視点を交えながら知見としてご参考いただければと思います。

30分トーク

PHP を使って java コマンドで動く class ファイルを生成するコンパイラを作る

m3m0r7 めもりー

みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを書き込んで何かしらを行うことも可能だったりします。
例えば、java が実行する class ファイルのようなバイナリを PHP で生成して、 java コマンドで動かすことも可能です。
言い換えると java コマンドで動くバイナリファイルを PHP のみで生成する、つまりコンパイラを作るということです。
本トークでは、 class ファイルの構造やオペコード(プログラムを実行する命令のこと)を PHP だけを使い、
どのようにしてファイルに書き込んだら java コマンドで動くかをお話できたらと思います。

30分トーク

PHP を JVM 言語にするためのコンパイラをつくる

m3m0r7 めもりー

みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを書き込んで何かしらを行うことも可能だったりします。
そう、例えば PHP のソースコード自体を PHP を使って Java のクラスファイルにコンパイルし、java コマンドで動かすようにすることも可能です。
言い換えると、 Kotlin や Scala のような JVM 言語を PHP のソースコードを用いて PHP で実装するということです。
本トークでは、 PHP を AST (抽象構文木、簡単に言うとソースコードがプログラムで理解されやすいように最適化した状態) に分解し、それを Java のクラスファイル(バイナリファイル)にコンパイルしてから java コマンドで動かすまでの一連の流れをお話できればと思います。

1
30分トーク

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

m3m0r7 めもりー

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

1
30分トーク

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

m3m0r7 めもりー

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

2
30分トーク

ハムスター監視システムを噂の PHP の拡張機能の Swoole と Raspberry Pi でつくってみた

m3m0r7 めもりー

ペット、かわいいですよね。私はハムスターを二匹飼っています。それぞれキンクマとジャンガリアンです。
可愛すぎて「常時見ていたい…」そのような気持ちになることはありませんか?
ありますよね。更に、ストリーミングで常に見れたらうれしいですよね。
そんなニーズに答えるため、 PHP の拡張の Swoole と Raspberry Pi を使用して、ストリーミング再生で常に最新の情報が送られるようなハムスター監視システムをつくってみました。
実装までの過程で、Swoole や Raspberry Pi で乗り越えた壁や、どのような形で開発をしたのか一つのドラマとしてトークします

1