nsfisis Quine とは、自分自身のソースコードと一致する文字列を出力するようなプログラムのことです。
PHP なら、
$ php a.php > output.txt
と実行したとき、output.txt と a.php が完全に一致するような a.php を「Quine」と呼びます。
一見すると不可能にすら思えますが、実のところほとんどの言語で簡単に書くことができます。
この記事では、基本的な Quine の書き方をいくつか説明した後、それを応用して更に面白い挙動をする Quine を書く方法について紹介します。
<?eval($s='printf("<?eval(\$s=%c%s%c);\n",39,$s,39);');
meihei PHPerKaigi 2026 楽しかったですかーー!!! \全員「はーーい!!」/
楽しかった思い出を残しつつ、学んだことを今後の成長に結びつけましょう!
このパンフレット記事では、PHPerKaigiを含むカンファレンスに参加したあとにすぐにでも行える、是非やって欲しい事を紹介します。
小山健一郎 FrankenPHPをご存知でしょうか?(前回のPHPerKaigi 2025に参加された方はご存知かもしれません)
公式サイトによると "「Go」で書かれたモダンな「PHP」アプリサーバー" だそうです。
どういうことでしょう???
「CaddyにPHP実行環境を組み込んでいる」 ... あ、Caddy知ってる。
あ、そういえば私Goチョットヨメル。
ということで、FrankenPHPを全く知らない、PHPerなGopherがFrankenPHPソースコードリーディングをしていきます。
目標は「HTTPリクエストから$_POST までを読み解く」!!
果たしてPHPまで辿り着けるのか?(筆者が)苦手とするCgoの壁を超えることができるのか?
git clone https://github.com/php/frankenphp.git # !!!
(注意:これはソースコードリーディング読み物です。いちソフトウェアエンジニアがどうやってコードを読み解いて目的を達成するのかを楽しむものとなります。FrankenPHPを正しく理解したい人は他のドキュメントを参照しましょう)
斉田真也 この現代でAIも盛んに使われる用になった中、「この言語じゃないとダメな理由」というのはかなり無くなってきてる気がします。
逆に言えば、言語の多様性がどんどん高まっている状況。
でもそうなってくると、出てくる一つの疑問「なんでPHPを使う必要があるのか?」
これを聞かれた時に「いや、それはね・・・」とかっこよく説明したいですよね。
欲を言えば、もうこれを見せるだけで終わらせられるような記事が欲しいですよね。
今回のPHPerKaigiのパンフレットはもれなく持ち帰りましょう。
そして、このパンフレットに書かれた記事を見せて「見てみて、こんなメリットがあるよ!」とプレゼンしましょう。
そのための記事を提供します。
たけてぃ 「このプロジェクトはPHP 8.3、あっちは8.1、拡張モジュールも違う…」
複数プロジェクトを抱えるPHP開発者にとって、環境管理は悩ましい問題です。
Homebrewでバージョンを切り替えればグローバル環境が汚染され、Dockerを使えばオーバーヘッドでネイティブより動作が遅くなる。
本記事では、第三の選択肢としてパッケージマネージャ「Nix」を紹介します。
Nixは純粋関数型言語で設計されたパッケージマネージャで、「同じ入力からは常に同じ出力」という再現性を保証します。
仮想化を用いずにプロジェクト単位の完全な環境分離を実現し、ネイティブな実行速度を維持したまま、PHPバージョンや拡張モジュールをプロジェクトごとに宣言的に管理できます。
「開発環境構築のIaC(Infrastructure as Code)」を実現するNixで、チーム全員が同一環境で開発できる世界を体験してみませんか。
asumikam あなたのPHPerKaigiは、今年で何回目ですか?
はじめてのドキドキ、2回目の成長した自分との再会、3回目からの“ただいま”感…。
もしかしたら、毎年皆勤賞で、すっかり“ホーム”になっている人もいるかもしれません。
私自身、PHPerKaigiだけでなく様々なカンファレンスに参加してきましたが、
いつも思うのは「最初にこれ知ってたら、もっと楽しめたのに!」という小さなヒントやコツの存在です。
そこで今回は、私が「最初に知りたかった!」と思った PHPerKaigi の楽しみ方のコツをパンフレットとしてお届けします!
こんなことを書きます!
もちろん、楽しみ方は人それぞれ。
この中からひとつでも「いいな」と感じるものがあれば、あなたのPHPerKaigiに少しだけ取り入れてみてください!!