最近、以前よりも大きなプロジェクトを開始しましたが、すべてのディレクトリとのリンク (ファイルを含めるなど) を管理するのが難しいと感じています。
ベースパスを定義してそこから移動する方法はありますか?
だから、このようなもの:
require(BASEPATH.'/folder/file.php');
それ以外の:
require('../../folder/file.php');
基本的に、ファイルを移動してもリンクが切れないようにする方法です。
最近、以前よりも大きなプロジェクトを開始しましたが、すべてのディレクトリとのリンク (ファイルを含めるなど) を管理するのが難しいと感じています。
ベースパスを定義してそこから移動する方法はありますか?
だから、このようなもの:
require(BASEPATH.'/folder/file.php');
それ以外の:
require('../../folder/file.php');
基本的に、ファイルを移動してもリンクが切れないようにする方法です。
__DIR__
インデックスファイル/フロントコントローラーの値に基づいて、いつでも変数を保存または定義できます。
// in index.php
define('BASE_DIR', __DIR__);
他のファイルでは、次のようにベース ディレクトリを参照できるようになります。
// in some_other.php
require(BASE_DIR . '/folder/file.php');
つまり、大規模なプロジェクトを開始したと言っているのですが、最初から、つまり現在の時点からそれを実行しています。
これを含むものを作成することをお勧めしますconst.php
:
<?php
$constants = array(
'DS' => DIRECTORY_SEPARATOR, //shorthand
'ROOT' => __DIR__,
'LIBS' => ROOT . '/libs'
);
//and so on - add more
//Define each one now:
foreach ($constants as $const => $val ){
define($const, $val);
}
プロジェクトの任意のファイル:
<?php
require ('../const.php');
//now constants are available and you can access them:
require ROOT . 'some.php'; //etc etc
require ROOT . 'another.php';