2016-05-16 20 views
4

これは以前から使用されていましたが、最近使用できなくなりました。私は自分の設定で何か変わったとは思わないが、確かに確かめるために数時間かけて注いだ。私はGoogleとあまりにもすべてをチェックしている。詳細に注意を払って "これがここで答えられた..."と主張してください。ありがとう。PhpStormは定数の使用を含む解決しません

  • <project_root>/index.php
  • <project_root>/folder/file.php

は、私たちのプロジェクトのルートがであると仮定します:)


前提と要件

は、我々は2つのファイルを持っていると仮定します。

index.phpからfile.phpを挿入します。私たちは、PhpStormがファイルパスを解決して、 "Go To Declaration"のようなすてきなIDEを実現できると期待しています。 :どのようなノー長い

define('ROOT_DIR', "/home/me/project/"); 
require ROOT_DIR.'folder/file.php'; 

PhpStorm 作品は、私がマウスオーバー時にROOT_DIRの価値を認識し、それはhomeを強調し、のようなものを言うん何

require 'folder/file.php; 

require '/home/me/project/folder/file.php'; 

$root = '/home/me/project/'; 
require $root.'folder/file.php'; 

を作品

Path '"/home/me...folder/file.php' not found

なぜ定数を使用するのですか? これを単純にするために、私は問題を説明するために必要ではない詳細を省略しました。私が取り組んでいる主な事は、これがなぜ動作するのに使用されたのですが、もはや動作しなかったこと、そして/あるいはそれを再び働かせることです。


大変申し訳ございません。あなたは何ですか実際にをしようとしていますか? ここに私が残した細部があります。私たちが主な問題を解決できない場合は、おそらく我々は良い仕事を見つけることができます。

私は既存のコードベースで作業しています。ほとんどのファイルにはconfig.phpファイルが必要です。このファイルにはWeb /プロジェクトルートを取得するためにroot_dir()が定義されています。 PhpStormはこれらのパスを解決していませんでした(分かりやすいので)。とにかくそれはもっと意味があります。

/** @define "root_dir()" "/home/me/project/" */ 
// or 
/** @define "ROOT_DIR" "/home/me/project/" */ 

どこでもファイルに、次にPhpStormはすべてそのファイルに必要と/含まれて解決することが可能であることを置く場合:

は、今日の戦いでは、私はあなたがこれを行うことができますことを発見しました。しかし、それは別のファイルにインクルード/要求しようとしても、そのファイルでのみ動作します。どこでも使えるようにするには、これをすべてのファイルに行う必要があります。いいえ。ナー、ああ。いいえ、結構です。 PhpStormがプロジェクト全体で認識する方法で、プロジェクト/ Webルートへの絶対パスを参照する必要があります。

+0

メモ:PhpStormは最近更新されました。 – musicin3d

+0

最新のPhpStorm v2016.1.1のバグです。彼らは最近、定数に取り組んでいましたし、改善もしていました(これはおそらくこれです)(https://youtrack.jetbrains.com/issue/WI-30953))これはその副作用であるに違いありません。 。 *おそらく*このチケット(100%は私が含まない/使用しないと確信していません) - https://youtrack.jetbrains.com/issue/WI-31638 – LazyOne

+1

もう1つの可能なチケット:https://youtrack.jetbrains.com/issue/WI-31754 – LazyOne

答えて

0

を:これは、最新リリースのバグであり、それがここに追跡されています

Keyboard Maestroを使用して、私はで@defineコメントを貼り付けますホットキーを作成しましたファイルの先頭に移動し、カーソルを元の位置に戻します。 Download the macro here。それをインポートし、テキストを編集します。

編集:実際には、通常のテキストエディタでファイルを編集する必要があります。システム上で動作するために、ファイルパスの1つを変更する必要があります。

注:私はPHPStormのMac Eclipseキーボードレイアウトの修正版を使用しています。それが重要かどうかはわかりません。

また、「変更されたファイル」の多くはファイルの先頭にこのマッピングが含まれていることに注意してください。このマッピングはチームメイトにとっては正しくない可能性があります。私は単にそれらの変更を自分のコミットから除外しています。

関連する問題