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);');
うさみけんた 世は大酸化時代!
昨今、さまざまな言語のためのツールチェーンをRustで書き直すムーブメントがあります。
PHPにもMagoというプロジェクトがあり、非常に高品質かつ高機能な製品が既に実用レベルに達しています。
この記事ではMagoの機能について既存の各種フォーマッター・静的解析ツールとの違いを紹介します。
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のパンフレットはもれなく持ち帰りましょう。
そして、このパンフレットに書かれた記事を見せて「見てみて、こんなメリットがあるよ!」とプレゼンしましょう。
そのための記事を提供します。
しめじ(smeghead) 「技術より業務知識が大事だよ」
20年以上前、技術の理解を深めれば良い仕事ができると考えていたジュニアプログラマーとしての私に、先輩が言った言葉です。当時は「業務知識が大事」と言う言葉自体の意味は理解できるしその通りであると思う一方、プログラマーとしての担当していた仕事内容から考えると実感として理解することはできずにモヤモヤしたものを感じていたのを覚えています。
今振り返ると、これは“ビジネスロジックと向き合う姿勢そのもの”に関する示唆であったと理解できるようになりました。
しかし、プログラマーにとってビジネスロジックはしばしば掴みどころがありません。仕様書やソースコードには結論だけが記述され、その背後にある意図や価値基準は薄まり、画面やDBの制約と混ざった断片として現れます。
特にジュニアプログラマーは担当範囲が限定されているため、言ってみれば視野が狭い状態から作業を始めることになります。ジュニアプログラマーにとって、ビジネスロジックを解像度高く把握するのが非常に難しい事であるというのは、自然なことなのかもしれません。
本記事では、この“プログラマーから見たビジネスロジックの掴みにくさ”に正面から向き合い、視点をアップデートすることを試みます。RUP(Rational Unified Process)が体系化した“ステークホルダー”という概念を参考に、ビジネスロジックを形づくる意図の源泉を理解するためのヒントを紹介します。要件定義の専門的な話ではなく、「プログラマーとしてどう捉え直せるか」が主題です。
たけてぃ 「このプロジェクトはPHP 8.3、あっちは8.1、拡張モジュールも違う…」
複数プロジェクトを抱えるPHP開発者にとって、環境管理は悩ましい問題です。
Homebrewでバージョンを切り替えればグローバル環境が汚染され、Dockerを使えばオーバーヘッドでネイティブより動作が遅くなる。
本記事では、第三の選択肢としてパッケージマネージャ「Nix」を紹介します。
Nixは純粋関数型言語で設計されたパッケージマネージャで、「同じ入力からは常に同じ出力」という再現性を保証します。
仮想化を用いずにプロジェクト単位の完全な環境分離を実現し、ネイティブな実行速度を維持したまま、PHPバージョンや拡張モジュールをプロジェクトごとに宣言的に管理できます。
「開発環境構築のIaC(Infrastructure as Code)」を実現するNixで、チーム全員が同一環境で開発できる世界を体験してみませんか。
asumikam あなたのPHPerKaigiは、今年で何回目ですか?
はじめてのドキドキ、2回目の成長した自分との再会、3回目からの“ただいま”感…。
もしかしたら、毎年皆勤賞で、すっかり“ホーム”になっている人もいるかもしれません。
私自身、PHPerKaigiだけでなく様々なカンファレンスに参加してきましたが、
いつも思うのは「最初にこれ知ってたら、もっと楽しめたのに!」という小さなヒントやコツの存在です。
そこで今回は、私が「最初に知りたかった!」と思った PHPerKaigi の楽しみ方のコツをパンフレットとしてお届けします!
こんなことを書きます!
もちろん、楽しみ方は人それぞれ。
この中からひとつでも「いいな」と感じるものがあれば、あなたのPHPerKaigiに少しだけ取り入れてみてください!!