Shin x Blog

PHPをメインにWebシステムを開発してます。Webシステム開発チームの技術サポートも行っています。

2024-01-01から1年間の記事一覧

「PHP ユーザのための OpenTelemetry 入門」を PHP カンファレンス 2024 で発表しました

2024/12/23 にお馴染み PIO で開催された PHP カンファレンス 2024 にて、「PHP ユーザのための OpenTelemetry 入門」を発表してきました。 発表資料 PHP アプリケーションを OpenTelemetry で計装するための第一歩として、オブザーバリティやテレメトリデー…

PHP アプリケーションのトレース計装ではじめる OpenTelemetry 入門

OpenTelemetry を利用して PHP アプリケーションのテレメトリデータを計装する方法をまとめました。 本エントリのコードは下記で公開しています。 github.com OpenTelemetry とは 用語 PHP アプリケーションのマニュアル計装(手動計装) 構成 OTel Collecto…

OPcache オペコードキャッシュの仕組み

php

本エントリでは、PHP の内部実装(php-src)から OPcache のオペコードキャッシュの仕組みを見ていきます。 OPcache にはいくつかの機能がありますが、ここでは共有メモリへのオペコードキャッシュと preload が対象です。ファイルベースのキャッシュと JIT …

PHP に新しい演算子を実装するチュートリアル

php

PHP に新しい演算子を実装するチュートリアルの紹介です。 www.sitepoint.com 新たなトークン、AST ノード、オペコードを実装するための修正ポイントや、PHP コードからオペコード実行までの実装を(部分的ですが)手軽に知ることできる良い内容でした。 こ…

PHP のオートロードはいつ実行されるか

php

下記エントリを書いたところ、ではいつオートローダによって PHP ファイルが読み込まれるのかという質問をいただきました。 blog.shin1x1.com このエントリでは、オートロードの仕組みを交えて、どのようなケースでオートローダが実行されるかをまとめました…

php-fpm リクエストサイクル

php

php-fpm がリクエストを処理しているサイクルをざっくりとまとめました。 php-fpm ワーカープロセスの生成 リクエストループ 1) リクエスト接続待ち listen_socket の生成 FastCGI リクエスト 2) リクエスト開始処理 実行PHPファイルパスの決定 スーパーグロ…

use 文は PHP ファイルを読み込まない

php

PHP の use 文では、クラス名や関数名、定数、名前空間などのエイリアスを設定できます。

php-fpm(php) をビルドして gdb でデバッグ実行できる Docker Compose 環境を作った

php

php-fpm と php コマンドを php-src からビルドして、gdb コマンドでデバッグ実行できる Docker Compose 環境を作りました。 github.com 利用方法 gdb コマンド php-src の .gdbinit PHP関数によるダンプ さいごに 利用方法 リポジトリを git コマンドでチェ…

Docker Compose で php-fpm が発行するシステムコールを見る

php-fpm の挙動を確認するために発行されるシステムコールを簡単に確認できる Docker Compose 環境を作りました。 github.com システムコール strace-php-fpm strace オプション php-fpm が発行するシステムコール例 ini ファイルの探索 nginx からの FastCG…

「PHPコードの実行モデルを理解する」をPHPカンファレンス香川2024で発表しました

2024/05/11 に玉藻公園内 披雲閣で開催された PHP カンファレンス香川 2024 にて、「PHPコードの実行モデルを理解する」を発表してきました。 発表資料 日頃実行している PHP コードがどのように実行されているかをざっくりとイメージして頂くために、PHP コ…