プログラム修正のための影響ファイル洗い出しツールは?

このQ&Aのポイント
  • プログラム修正の際に便利なツールを探しています。指定したディレクトリ内で影響しているファイル一覧を洗い出し表示してくれるツールはありませんか?
  • 現在は秀丸エディタでgrepを使用して一つずつファイルを追いかけていますが、効率的な作業方法を知りたいです。
  • Windows環境で使用できるフリーソフトのツールをご存知の方、教えていただけませんか?
回答を見る
  • ベストアンサー

プログラムで影響するファイルの洗い出しツールは?

プログラムを修正する際の便利なツールを探しています。例えばform.phpというファイルがrequire_once()でclass.phpを呼び出し、更にclass.phpはmysql.iniを呼び出し・・という様な場合に、ディレクトリとファイルを指定して、そのファイルに影響しているファイル一覧を指定したディレクトリ内で洗い出して表示してくれるような便利なツール(Windows環境フリーソフト)は無いでしょうか? どなたかご存知でしたらどうか宜しくお願いします! ちなみに、現在は秀丸というエディタで”require”でgrepかけて地道に追いかけています。単体のツールで無くても上記のような動作が出来る方法をご存知でしたらお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • gmataw
  • ベストアンサー率50% (12/24)
回答No.1

debug_backtrace() でいかがでしょう。

関連するQ&A

  • さくらのレンタルサーバーでDB.php読み込み失敗

    下記の環境でPHPを書いています。 ・さくらのレンタルサーバ スタンダード ・PHP 5.2.13 ・php.iniファイルパス /home/******/www/php.ini その中で、require_once("DB.php");と記述をしているのですが、 その部分で下記のエラーが発生します。 Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/www/class/db.class on line 6 Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/local/php/5.2.13/lib/php') in /home/xxx/www/class/db.class on line 6 2ヶ月ほど前に作成した時は間違いなく正常に動作していたのですが・・・。 久しぶりにアクセスしたらこんなエラーが出ていて途方にくれています。 推測できる原因はありますでしょうか?

    • ベストアンサー
    • PHP
  • require_once()でファイルが読み込めません

    すいません、色々やったみたのですがよく分からなかったので教えてください。 PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。 その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、 failed to open stream: No such file or directoryや Failed opening required 'Smarty.class.php' というエラーが出て読み込めません。また、phpinfo()を見る限りではphp.iniはきちんと読みにいっているようでした。 ためしに/usr/にSmartyを置き、include_pathもそのように変更してみたのですが読み込めません。カレントディレクトリに配置した場合は上手く読み込めました。また、Smartyでなくてもどのファイルでも読み込めない状況です。 環境はFedora6、Apache2.0、PHP5です。何かアドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • 動的ページで全ての情報を検索対象にする正しいやり方

    ■/(ルートディレクトリ) ├─□index.php ├─■actionディレクトリ(各ページ共通に使用するファイルを格納) │  ├─□contents.php │  ├─□header.php(contents.phpのheader部) │  ├─□left.php(contents.phpのleft部) │  ├─□right.php(contents.phpのright部) │  ├─□footer.php(contents.phpのfooter部) │  ├─□class-teisuu.php(定数を格納) │  ├─□class-kannsuu.php(関数を格納) │  └─□class-mysql.php(mysqlの接続とクエリ) ├─■contentsディレクトリ(各コンテンツの情報を格納) │  ├─■0001 │  │  └─■imageディレクトリ(そのコンテンツの写真を格納) │  │     └─□001~n.jpg   --------------------------   1266コンテンツまで繰り返し   -------------------------- └─└─■1266      └─■imageディレクトリ(そのコンテンツの写真を格納)          └─□001~n.jpg contents.php ------------ <?php require_once("header.php"); require_once("right.php"); require_once("left.php"); require_once("footer.php"); require_once("class-teisuu.php"); require_once("class-kannsuu.php"); require_once("class-mysql.php"); ?> PHPとMYSQLで作った動的ページがあります。 index.phpで見たいコンテンツの絞込をやり、 0001~1266コンテンツのどれか1ページを見れるようにします。 そのときにindex.phpからcontents.phpに$_GET['n']='1211'というように コンテンツを判別する値を渡すことで1211のページを開くことができます。 そして、ヤフーなどの検索から直接そのcontents.phpに来た時にちゃんと開くように (isset($_GET['n'])) ? $pegenumber=$_GET['n'] : $pegenumber='0777'; のようにして$pegenumberが空にならないようにしています。 そこまではいいのですが、SEOを考えたときに問題があるのでは?と疑問に思いました。 せっかく情報が1266分もあるのに、そのやり方だと0777以外は検索されないですよね? 外部から来たものへ全てのコンテンツを検索対象にするためには、 contents.phpをactionディレクトリに置くのではなく、 contentsディレクトリの各ディレクトリの中に置きます。 そして、$_GET['n']をなくして、各contents.phpに$pegenumber='コンテンツ番号' を直接指定したほうがそれぞれ検索されるようになり、ちゃんと中身も表示されるようになる。 この考えは正しいですか? ■/(ルートディレクトリ) ├─□index.php ├─■actionディレクトリ(各ページ共通に使用するファイルを格納) │  ├─□header.php(各ページのheader部) │  ├─□left.php(各ページのleft部) │  ├─□right.php(各ページのright部) │  ├─□footer.php(各ページのfooter部) │  ├─□class-teisuu.php(定数を格納) │  ├─□class-kannsuu.php(関数を格納) │  └─□class-mysql.php(mysqlの接続とクエリ) ├─■contentsディレクトリ(各ページの情報を格納) │  ├─■0001 │  │  ├─□contents.php($pegenumber='001'を格納) │  │  └─■imageディレクトリ(そのページの写真を格納) │  │     └─□001~n.jpg   ----------------   1266まで繰り返し   ---------------- └─└─■1266     ├─□contents.php($pegenumber='1266'を格納)     └─■imageディレクトリ(そのページの写真を格納)        └─□001~n.jpg 0777ディレクトリのcontents.php ------------------------------ <?php $pegenumber='0777' require_once("../../action/header.php"); require_once("../../action/right.php"); require_once("../../action/left.php"); require_once("../../action/footer.php"); require_once("../../action/class-teisuu.php"); require_once("../../action/class-kannsuu.php"); require_once("../../action/class-mysql.php"); ?>

    • ベストアンサー
    • PHP
  • include時の頭の良いパス指定について

    include時の頭の良いパス指定について 長い上に少々わかりにくい話ですが、includeする場合のパスについてです。 現在の構成は次のとおりです。 / ├inc/ │ ├file_a.class.php │ ├file_b.class.php │ ├file_c.class.php │ │ │ └require/ │   └require.php ├dir/ │└index.php │ └index.php 【/index.phpの中身】 <?php  require_once "./inc/require/require.php";  //その後いろいろ処理 ?> 【/inc/require/require.phpの中身】 <?php  require_once "./inc/file_a.class.php";  require_once "./inc/file_b.class.php";  require_once "./inc/file_c.class.php"; ?> 今回後付で、「/dir/index.php」を設置しました。 「/index.php」とほぼ処理は共通なので、「/dir/index.php」を次のように書いています。 【/index.phpの中身】 <?php  require_once "../index.php"; ?> しかし、この場合「/dir」以下からは、incまでの階層が異なるため、includeしても、 各クラスのファイルを読み込むことができず、 No such file or directory in require.php on line 2 のエラーが表示されてしまいます。 こういう場合、どういうパス指定をするのがいいのでしょうか。

    • ベストアンサー
    • PHP
  • smartyの設定 include?path以下の設定がわからない

    独学でPHPを学んでいます。 PHPの基本はひととおり理解はできました。 開発環境・最新のXAMPP導入。 windows、OSはVISTA smartyをインストールしましたが、その設定につまずいています。 Smarty.class.phpが存在するパス(D:\xampp\libs)をphp.iniファイル447行目を下記のように設定しましたが、うまくいきません include_path=D:\xampp\libs\ xamppフォルダの下にlibsフォルダを入れたので上のパス指定で問題ないと思うのですが、どこが間違っているのでしょうか。 ちなみに、libs以下の\も不要だろうと思い、消したりして試してみましたが、結果は同じ。下記のように表示がなされます。 Warning: require_once(local/xampp/libs/Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\lesson\smarty1.php on line 3 Fatal error: require_once() [function.require]: Failed opening required 'local/xampp/libs/Smarty.class.php' (include_path='.;D:\xampp\php\pear\') in D:\xampp\htdocs\lesson\smarty1.php on line 3 上の文章ですが、3行目後半”Smarty.class.php' (include_path='.;D:\xampp\php\pear\')”の部分ですが、php.iniからinclude_pathを変更したりしているのですが、一向に表示が変わりません。 もしかしたらphp.iniファイルは二つあったりするのでしょうか。 php.iniのファイルはPHPフォルダに入っているものでよろしいですよね? もちろんアパッチは再起動させています。 なのにできません・ あと、ロジックファイルの require _once()の()内はSmarty.class.phpだけでもよろしいのでしょうか。 もう悩みすぎて頭がおかしくなりそうですね。 ちなみにsmartyがなくても、アプリケーション開発に支障はありませんでしょうか。 あくまで個人で趣味の範囲でアプリケーションを作成したいと感じています。

    • ベストアンサー
    • PHP
  • require_onceについて

    いつもお世話になっております。 超初級な質問で申し訳ないのですが困ってます。 下記のような4つのclassがあります。 A_Class------------ <?php require_once('Base_Class'); class A_Class extends Base_Class{} Base_Class------------------ <?php require_once('B_Class'); abstract class Base_Class { public function hoge (){ $b = new B_Class(); $b->hoge(); } } B_Class--------------------- <?php require_once('C_Class'); class B_Class{ public function hoge (){ $c = new C_Class(); } } C_Class--------------------- <?php require_once('Base_Class'); class C_Class extends Base_Class{} ほかのファイルからrequire_once('A_Class');をすると PHP Fatal error: Class 'Base_Class' not found in C_Class.class.php on line 2 となります。 Base_Classのrequire_once('B_Class');をクラス定義の下に書けば通るのですが、 できればrequire_onceは上部にそろえておきたいです。 require_onceを下に書かずに修正する方法がありましたらご教授お願いします。

    • 締切済み
    • PHP
  • VSCodeでファイル内Grep

    VisualStudioCodeでファイル内Grepを実行する方法を教えてください。 秀丸やサクラエディタのようなGrep結果になるのが理想です。

  • smartyのdifineについて

    表示するファイルにdefineにてパスを設定すると正常に 表示されるのですが管理が面倒なので別のファイルに defineにてパスを設定するとエラーになってしまいます。 具体的には以下のソースです。 ---Smarty/libs/path.php--- define ('SMARTY_LIBS_DIR', 'C:/Program Files/xampp/htdocs/Smarty/libs/'); ---Smarty/libs/MySmarty.class.php--- require_once dirname(__FILE__) . '/Smarty.class.php'; require_once dirname(__FILE__) . '/path.php'; ---Smarty/index.php--- require_once SMARTY_LIBS_DIR . 'MySmarty.class.php'; 調べてみたのですが表示するファイルに指定する方法しか みつからなかったのですが別ファイルから指定する事は 無理なのでしょうか?

    • 締切済み
    • PHP
  • 呼び出し先にさらに呼び出しがある場合について

    PHPバージョン5.2.4を使っています。 index.phpからdir1ディレクトリにあるfile1.phpをrequireして使いたいのですが、 file1.phpもdir1ディレクトリにあるfile2.phpをrequireしているので 次のような呼び出し方ならうまく作動するのですが、 [index.php] define('DIR', realpath(dirname(__FILE__))); require_once 'dir1/file1.php'; [dir1/file1.php] require_once DIR.'/file1.php'; [dir1/file2.php] print "file2表示"; 次のようにindex.phpをdir1ディレクトリに移動させて実行すると file1.phpのrequireでエラーが出てしまいます。 [dir1/index.php] define('DIR', realpath(dirname(__FILE__))); require_once 'dir1/file1.php'; このような呼び出し先の中にさらに別の呼び出しがある場合は どのように記述すればindex.php(実行するファイル)を 別のどんな場所に移動させても作動させることができるのでしょうか?

    • ベストアンサー
    • PHP
  • PHP開発ツール

    みなさんは、PHP開発に何を使われていますか? 秀丸やEmEditorなどのエディタ系ですか? それとも、Zendが出しているようなツールとかでしょうか? いいツールがないかなと最近探しています。 ご意見、宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう