Slide 1

Slide 1 text

テンプレートエンジンとして使うPHP phper x 日本酒の会 #4 @mazrean

Slide 2

Slide 2 text

mazrean 2 ◼DeNA新卒1年目 ⚫4月に入社したばかり ◼Gopher ⚫Go Connectつながりで来た ◼PHPerかは怪しい… ⚫2週間くらい前に数十行くらいのスクリプト書いた ⚫お手柔らかにお願いします! 今日はこれの話

Slide 3

Slide 3 text

2週間前 3 ◼ phper x 日本酒の会行きたい ⚫日本酒呑みたい ⚫PHPの世界に興味はある ◼ 流石にPHP触ったことないのは… PHP触るぞ! 真の飲酒駆動開発と言われた

Slide 4

Slide 4 text

PHP触るのはいいが… 4 ◼ せっかくならPHPらしいもの触りたい ⚫実用性・面白さがあればなおよい ◼ PHPというと? ⚫Laravel ⚫表層だけ触っても面白くはなさそう ⚫CGI ⚫標準入出力でリクエストを処理 ⚫HTMLが構文中に書ける ⚫文にT_INLINE_HTMLというのがあるらしい

Slide 5

Slide 5 text

PHP触るのはいいが… 5 ◼ せっかくならPHPらしいもの触りたい ⚫実用性・面白さがあればなおよい ◼ PHPというと? ⚫Laravel ⚫表層だけ触っても面白くはなさそう ⚫CGI ⚫標準入出力でリクエストを処理 ⚫HTMLが構文中に書ける ⚫文にT_INLINE_HTMLというのがあるらしい テンプレートエンジン代わりに使えないか?

Slide 6

Slide 6 text

使用する環境 6 ◼ Marpで作成したスライドをGitリポジトリで管理 ⚫Marp: Markdownでスライドを作成できる ⚫1ディレクトリ1スライド ◼ 目次ページの生成をPHPでしたい ⚫もともとPugというJSのテンプレートエンジンで行っていた スライド 目次生成 スクリプト

Slide 7

Slide 7 text

書いた! 7 割とシンプルにまとまった? ◼ 1ファイルになったのは大きい ◼ 生成するHTMLはほぼ同じ ⚫Minifyだけなくなった かなり良い!

Slide 8

Slide 8 text

問題点 8 npmスクリプト中にPHPが出現する → Node.js以外にPHPが必要 ⚫Vercelなどでの公開が困難になる

Slide 9

Slide 9 text

助けて!ChatGPT! 9 ◼ ChatGPTに聞いてみた ◼ Wasmを利用してPHPを動かすCLIがあるらしい ⚫WordPressがPlayground用に開発している [1]: https://github.com/WordPress/wordpress-playground/tree/trunk/packages/php-wasm

Slide 10

Slide 10 text

修正後 10 ◼ Node.jsだけあれば全てが動くようになった ◼ VercelなどでもHTML生成が実行できるように ◼ JSのテンプレートエンジンでHTML生成するよりも快適

Slide 11

Slide 11 text

まとめ 12 ◼ PHP触ってみた! ◼ Wasm使ってJSのテンプレートエンジン代わりに使った ⚫快適で良い ⚫簡単なHTML生成が必要な時には便利そう