PHPコードをブラウザ内でマスキングする
クラス・型、関数・メソッド、識別子、値、コメントを選び、共有用コピーを作成します。入力コードと結果はDevelop Toolsのサーバーへ送信・保存されません。
PHPコードマスキングツールを開く結論
元Projectではなく共有用コピーを作り、Class・Function・Variable・String・Number・Commentをマスキングします。PHP Versionとエラー条件は残し、結果側の配列キー、属性、declare、SQL、HTMLを確認してから共有します。
元Projectを直接編集せず、共有用コピーで作業してください。
共有前のBefore・Afterを確認する
<?php
declare(strict_types=1);
namespace Internal\Billing;
final class CustomerService
{
public function find(string $customerId): array
{
$endpoint = 'https://api.example.test/customers/' . $customerId;
return [];
}
}
declare(strict_types=1)、属性引数、配列キーは動作上の意味を持ちます。自動置換後に壊れていないか、元コードと比較してください。
PHPコードマスキングツールで確認する手順
- 1. 再現に必要なFunction・Classだけを別コピーへ切り出す
- 2. Version、Framework、最初のErrorを別メモへ残す
- 3. 識別子・値・コメントを選んでマスキングする
- 4. 右クリック解除は必要最小限にして結果だけを共有する
見落としを防ぐ確認表
| 分類 | 確認対象 |
|---|---|
| Identifier | Namespace、Class、Trait、Method、Variable |
| Value | URL、Path、Credential、ID、Message |
| PHP | declare、Type、Attribute、enum、HEREDOC |
| Other | SQL、Log、JSON、.env、Screenshot |
PHP固有の構造を残せているか確認する
- namespace、use、Class、Interface、Trait、enum、Function、Methodの対応を比較する
- declare(strict_types=1)、型宣言、Nullable・Union Type、参照渡し&を目視する
- 属性名・属性引数、enum Case、配列キー、定数が動作上必要か確認する
- HEREDOC・NOWDOC、文字列内SQL、HTML・Blade混在部分は元コードと別に確認する
- $_GET、$_POST、$_SERVER、$_SESSIONなどのSuperglobal名は保持されても、中の実データは別途確認する
- PHP Version、Extension、Composer Package、Laravel Version、再現条件は匿名化とは別に記録する
同じ識別子が同じ代替名になっているかだけでなく、PHPとして重要な予約語・記号・区切りが残っているか確認してください。
コード以外の情報を分けて安全に共有する
| 情報 | 確認方法 |
|---|---|
| PHPコード | PHPコードマスキングツールで識別子・値・コメントを置換する |
| SQL・Binding | SQLマスキングツールでTable・Column・Literalを確認する |
| Stack Trace・Laravel Log | ログマスキングツールでPath・ID・Token・Messageを確認する |
| JSON API応答 | JSONマスキングツールでKey・Valueを確認する |
| .env・設定 | 必要なKeyだけを別コピーへ抜き出し、値を手動でDummyへ置換する |
DB Password、APP_KEY、Session ID、Cookie、Authorization Header、Webhook URL、秘密鍵が漏れた場合は、マスキングだけでなく失効・再発行も行ってください。
現行PHPコードマスキングツールでできること・できないこと
| 確認項目 | 現行ツールの対応 | 共有前の注意 |
|---|---|---|
| 入力 | PHPテキストの貼り付け | .php、composer.json、Laravelプロジェクトの直接読込には対応しない |
| 分類 | クラス・型、関数・メソッド、識別子、値、コメント | PHP Parser、php -l、PHPStan、Psalmと同等の意味解析ではない |
| PHP 8構文 | 属性、enum、match、Union Type、Nullsafe Operatorなどの記号を概ね保持 | 属性引数や識別子を置換すると、実行可能なコードではなくなる場合がある |
| 文字列 | 引用符付き文字列、HEREDOC・NOWDOCを値として置換 | 文字列内のSQL、JSON、URL、HTMLを専用構文として解析しない |
| 混在コード | PHPとしてトークン化してマスキング | HTML、Blade、Twig、WordPressテンプレートを完全解析しない |
| declare | 一般識別子・数値と同じ規則で処理され得る | strict_types=1が壊れる場合があるため、結果を必ず目視確認する |
| 操作 | 結果コピー、全消去、結果側の右クリックによる個別解除・再適用 | 解除した元情報が共有に必要か送信前に再確認する |
| 保存 | 表示設定だけをLocalStorageへ保存 | 入力、結果、対応表、履歴をDevelop Toolsのサーバーへ送信・保存しない |
マスキング結果は共有用コピーです。実行、構文検査、型検査、LaravelやComposerの動作確認を置き換えるものではありません。
公式資料と対象環境で確認する
- PHP Manual: Type declarations
- PHP Manual: PHP 8 migration guide
- PHP Manual: Arrays
- PHP Manual: Throwable
- PHP Manual: PDO prepared statements
- Composer: Autoloading
- Laravel: Error handling
- Laravel: Eloquent relationships
PHP、Laravel、ComposerはVersionによって挙動や推奨手順が変わります。記事だけで断定せず、対象Versionの公式資料、php -v、composer show、設定、Test結果を照合してください。
具体例:AIへParse Errorの再現コードを相談
元Projectではなく共有用コピーを作り、Class・Function・Variable・String・Number・Commentをマスキングします。PHP Versionとエラー条件は残し、結果側の配列キー、属性、declare、SQL、HTMLを確認してから共有します。
実Credential、実顧客情報、内部Pathではなくexample.testやDummy値を使い、問題を再現する最小範囲で確認します。
- 最小再現コードを共有用コピーへ切り出す
- 識別子・値・コメントをマスキングする
- PHP構文と診断Contextを比較する
- マスキング結果だけを共有する
結果側の対象は右クリックで個別解除・再適用できます。戻した元情報が本当に必要か、送信前に再確認してください。
よくある質問
- .phpやLaravelプロジェクトを直接読み込めますか?
- 直接読込には対応していません。必要なPHPテキストを入力欄へ貼り付けます。ComposerやLaravelのProject解析も行いません。
- マスキング後のコードはそのまま実行できますか?
- 実行成功は保証しません。declare(strict_types=1)、属性、HEREDOC、HTML・Blade混在部分などが変化する場合があるため、共有用コピーとして元コードと比較してください。
- 入力したPHPコードはサーバーへ送信されますか?
- 入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。