[解決済み] クラスが定義されたPHPファイルを(実行時に)検索する
2022-08-22 20:02:11
質問
特定のクラス(または関数)が定義されたPHPファイルを見つけることができるPHPのリフレクション/イントロスペクション/マジックはありますか?
言い換えれば、私はPHPクラス、またはインスタンス化されたオブジェクトの名前を持っています。 私はこれを 何か (関数、Reflection クラスなど) に渡して、クラスが定義されているファイルシステムのパスを返したいのです。
/path/to/class/definition.php
を使うことができることに気づきました。
get_included_files())
を使用して、これまでに含まれたすべてのファイルのリストを取得し、それらをすべて手動で解析することができますが、これは1回の試行のために多くのファイルシステムにアクセスすることになります。
また、この情報をどこかにキャッシュする __autoload 機構にいくつかの追加のコードを書くことができることを理解しています。 しかし、既存の __autoload を修正することは、私が考えている状況では、制限されています。
これを行うことができる拡張について聞くことは興味深いことですが、私は最終的に "ストック" インストール上で実行できるものが欲しいです。
どのように解決するのか?
トライ
ReflectionClass
- ReflectionClass::getFileName - ファイル名を取得する
例
class Foo {}
$reflector = new \ReflectionClass('Foo');
echo $reflector->getFileName();
これは、以下を返します。
false
が見つからない場合、例えばネイティブ・クラスの場合。
関連
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】 PHP 未定義関数の呼び出し
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] PHPはエラーログをどこに保存するのですか?(PHP 5, Apache, FastCGI, および cPanel)
-
[解決済み] PHP のクラスメソッドの先頭のアンダースコアはどうなっているのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み] PHP 未定義関数への呼び出し
-
[解決済み] PHP Fatal error: クラスを再宣言できません