1

重複の可能性:
クラスが定義された PHP ファイルの検索 (実行時)

私は、他の誰か (現在利用できません) がセットアップしたサーバーを使用しています。ソースコードを正しいバージョンのクラスに更新できるように、Apache (またはその他のもの) がプリロードしているクラスのソースを見つけようとしています。これを実行する:

<?php echo class_exists('className')? "yes": "no"; ?>

(phpファイル全体として)yesを出力します。そのクラスがどのファイルから来ているかを知るにはどうすればよいですか? 私はサーバーをgrepして、可能性のあるファイルの長いリストを持っていますが、多くの推測やチェックを行わずに、どのファイルを変更する必要があるかを知りたいだけです。そのクラス名のソースコードを含むファイルを教えてくれる機能はありますか?

ありがとう

4

2 に答える 2

3
$r = new ReflectionClass('YourClassName');
echo $r->getFileName();

http://php.net/manual/en/reflectionclass.getfilename.phpにあるリフレクション クラスのドキュメント ページを参照してください。

ドキュメントによると、PHP コア (または拡張機能) によって定義されたクラスにより、getFileName()メソッドは を返しFALSEます。

if ($r->getFileName() === FALSE) {echo 'Defined by PHP';}
于 2012-11-26T23:39:02.507 に答える
1

インクルード パスをチェックして、関連するディレクトリを確認します。

get_include_path

http://php.net/manual/de/function.get-include-path.php

Reflection クラスを使用して実際のファイルを取得します http://de1.php.net/manual/de/reflectionclass.getfilename.php

于 2012-11-26T23:13:22.800 に答える