2017-04-11 15 views
6

を連結した文字列を上書き次のコードが含まれている私のプロジェクトでの場所の何百もあります。 。変数$rootは、CRMのさまざまな部分で異なります。は、別の文字列

私は今、CRMのすべての部分が同じテンプレートファイルを使用するようにしたいです。 $rootを中央のドキュメントルートに変更することはできません。なぜなら、その変数を使用するコード内に他の場所があるからです。テンプレートを読み込むために変更したいだけです。

時間を節約する方法はありますので、私はこれが表示されます私のコード内のすべての場所の上に行く必要はありませんか?場合によっては$template文字列をconcatinatedときに$root文字列を上書きする方法がありますか?

すなわち

$root="$_SERVER['document_root']."\some_folder"; 
$template="[something_to_ignore_concatination?]".$_SERVER['document_root']."\template_file"; 
//So $root.$template = just $template 
+0

まず、それは変更されません '$のroot'のための定数を使用し、そのようにdoSomethingの'( 'APPROOT'、 '/ fooの/バー') 'を定義します。そして、この '$テンプレート= APPROOTを作る。「/休憩///パスの」' – JustOnUnderMillions

+0

はなぜ、グローバル検索をしないと、あなたのテキストエディタで置き換えますか? 'include $ rootを見つけてください。 $ template; 'に置き換え、' include $ template; 'に置き換えます。崇高なテキスト3は確かにこの能力を持っています – Spholt

+0

これが可能かどうか、あるいは実際にそのような解決法を使用したいのか疑問に思っていますか? –

答えて

3

警告:あなたは以下を参照してください醜態ですよ何を、実際のソフトウェアでこれを使用しないでください!

これらの値を仮定:

$_SERVER['document_root'] = 'path/to/root' 

$root == $_SERVER['document_root'] . '/some_folder' == 'path/to/root/some_folder' 

$template == '/' . $_SERVER['document_root'] . '/file.php' == '/path/to/root/file.php' 

$root . $template == 'path/to/root/some_folder/path/to/root/file.php' 

ダブルパスがまだ解決されることをあなたは

path/to/root/some_folder/path/to/root -> path/to/root/ 

をシンボリックリンクがあります。

注:上記のパスは、PHPのinclude_pathに追加のフォルダのいずれかに対するものとして扱われるべきです。

+0

非常に創造的、ソリューションのおかげで。あなたは正しいですが、ベストプラクティスとして検索&置き換えてください。 – dlofrodloh

関連する問題