終了

【php】サーバールート相対パスでincludeしてふぁいるの入力補完について

Community Beginner ,
Jan 03, 2018 Jan 03, 2018

お世話になっております。

現在、PHPシステムの開発環境としてDreamweaverを使用しております。

<?php ~ ?> の間のコードは、HTMLやCSS同様、Ctrl+スペースで入力補完(予測表示)されますが、
オブジェクト指向のコーディングをしていると、必ずと言っていいほど、関数は別ファイルに分けて、クラス定義したりしますよね?

各ページの頭でincludeしているのですが、その際に相対パスではなく、サーバールート相対パスを使用しており、


home
|-common
|   |-functions.php  <-関数ファイル
|
|-hoge
|-fuga.php <-呼び出し側ファイル


のような構造の場合
fuga.phpからは

include_once('../common/functions.php');


ではなく

include_once($_SERVER['DOCUMENT_ROOT'] . '/common/functions.php');

と読み込みます。

理由としては、
どちらもディレクトリ構造は変更されないように設計しているつもりですが・・、
どちらかというと呼び出し側は階層を増やすなどでもしかすると今後階層が変わるかもしれません。
ですが、commonの様なフォルダは既存の階層を大きく変更する可能性は当方の構築するシステムでは少ないのです。

よって、サーバールート相対パスを採用しております。

ですがこれには問題がありまして、
Dwではこの読み込み方をすると、入力補完がされないのです。

相対パスでの読み込みでは、

class test {

    public static function funcA() {

        return 'test';

    }

}

の場合、「te」などでCtrl+スペースを押下すると、「test     functions.php」のように、予測変換?的な表示が出てきて、「test::」でCtrl+スペースすると、「funcA      test  functions.php」のように表示されていました。

ですが、サーバールート相対パスでの読み込みにしていると、この機能が使用できずとても不便です。

なにか解決策がありましたら、ご教授ください。

宜しくお願いいたします。

1.2K
翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
支持者 ,
Jan 03, 2018 Jan 03, 2018
最新

おそらくDreamweaverの機能上の制限と思われます。

回避策としましては、「サイト固有のコードヒント」としてDreamweaverに設定を追加し、ローカルサイト上のPHP書類の中から変数やメソッド等を抽出させてコードヒントとして表示させるのが適当ではないかと思います。

以下の機能紹介ビデオを参考にしてみてください。(旧バージョンを対象とした解説ですが、最新のCC2018でも有効です。)

サイト固有のコードヒント

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines