0

ive は、フォルダーと設定ファイルに関する限り、このレベルの組織を持つ mvc を作成しました。

+[admin]
-[js]
-[css]
-[images]
-[classes]
--list of php classes
-[includes]
--config.php (includes db connection str
--functions.php (php functions)



--root---

[js]
[css]
[images]
[classes]
--list of php classes
-[includes]
--config.php (includes db connection str
--functions.php (php functions)

この構造の問題は、ご覧のとおり、管理セクションにクラス、関数、および db 構成ファイルの独自のフォルダーがあることです。

次に、他のページのルートには、クラス、関数、およびデータベース接続用の独自のページセットがあります(これは管理者と同じです)

管理セクションとルート ページがすべて共有されるように、クラス用に 1 つのフォルダーとインクルード用に別のフォルダーを作成しようとしましたが、その結果、クモの巣などのインクルードの混乱が生じます。

試した取り込み方法は

include_once(dirname( FILE )./directory/...) これが何をするかというと、フォルダー内にいて、現在のページに1レベル上のファイルを含めようとすると、機能しません。メインのルート ディレクトリを使用する代わりに、フォルダ im も内部に含めます。だから何の役にも立ちません。

したがって、これが私のルートである場合: d:/wamp/www/website/ で、メイン ルートから functions という名前のディレクトリ内のファイルに何かを含めていた場合、ディレクトリ名 ( FILE ) は実際には d:\wamp\ の値になります。 www\ウェブサイト\関数\

何が起こっているのかを把握しようとしてエラーの混乱に陥ることなく、ファイルを含める良い方法です。

ありがとう

4

2 に答える 2

1

このようなことを試して、中央の構成ファイルで定義してください。

これにより、すべてのパスに対して1つの定数が1つ与えられ、適切なファイルパスが添付されたROOT_CLASSESおよびADMIN_CLASSESとして、おそらく各フォルダーに1つずつ、いくつかの他の定数が定義されます。次に、ものを含めるのは本当に簡単です。定数で記述し、ファイル名を追加するだけです。

define("ABS_PATH", "/path/to/upper/most/directory"); // マニュアル

// 他のパスを定義...
define("ADMIN_CLASSES", ABS_PATH . "/admin/classes/");
define("ROOT_CLASSES", ABS_PATH . "/root/classes/");

include(ROOT_CLASSES."/myclass.php");

これが他の宣言とともに構成ファイルにある場合は、後でそれらを定義することについて心配する必要はありません。

于 2009-07-26T03:30:03.227 に答える