2016-08-30 4 views
3

オートローディング中または実行中に実行されるクラスとコードを含むファイルを検出または検出する方法はありますか?例のように:require/include中に実行されるクラスとコードの外にあるphpファイルを見つける方法?

<?php 
class SomeClass 
{ 
    private $variable; 
    public function __construct($variable) { 
    $this->variable = $variable; 
    } 
} 

// example usage 
$foo = new SomeClass('test'); 
var_dump($foo); 

// some other code 

私はそれらを古いプロジェクトで見つけ出す必要があり、手作業でチェックするファイルが多すぎます。

ありがとうございました。

EDIT:私はそれらのすべてを自動ロードできません(不要なコードがどのファイルに含まれているかわかりません)。また、何らかのエラーがない限り、実行されたコードを表示する必要はありません。

+0

エディタにはディレクトリ検索機能はありませんか? – RiggsFolly

+0

Outoloadがある場合、そのスクリプトはフォルダまたはフォルダ構造とファイル命名規則を指す必要があります – RiggsFolly

+0

必要がある場合は、特定のファイルを指すようにしてください – RiggsFolly

答えて

0

単語クラスを検索し、結果を新しい単語にパイプすることはできますか?これはPHPのTokenizerを使用されるだろう行うに

grep -r --include "*.php" 'class' | grep 'new' 
+0

興味深いアプローチですが、クラス内に多くの "新しい"使用法があり、外部には(まさしくダンプや他のコードかもしれません)多くのヘルプがありません。 – Dukecz

0

適切(と少なくともエラーが発生しやすいが、ハード)の方法。 globを使用すると、すべてのPHPファイルを取得できます。次にトークン化ツールを使用して、トークンがT_CLASS(またはT_NAMESPACE)のトークンを含むクラスファイルとしてマークし、クラス自体をスキップして、トークン(および名前空間、コメントなど)以外のものを探すあなたがそれを見つけるときファイル名。

ない方法(かつ確実に偽陽性になりやすいもの)(トークナイザを使用するよりも、おそらく困難である)あなた自身の簡単なパーサを書いたりものを見つけるためにawkの組み合わせでいくつかの単純な正規表現を使用することになりそう適切それはクラスと名前空間の周りです。私はあまり経験はありません(と私はかなり正規表現だけでは十分ではない)ので、私は実際に例を提供することはできません。

関連する問題