Skip to main content
778 Posts
daisukehozumiParticipating Frequently
 質問
【php】サーバールート相対パスでincludeしてふぁいるの入力補完について

お世話になっております。現在、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」のように表