2016-11-06 7 views
0

私のアプリケーションはすべての要求をインデックスファイル経由でルーティングします。このファイルはインデックスファイル内の定数の定義

require_once $_SERVER['DOCUMENT_ROOT'] . "/app/config/config.php"です。

この設定ファイルはパス定数を定義するため、他の場所でも使用できますが、動作していないようです。例えば、config.phpで私は

define('MODELS', $_SERVER['DOCUMENT_ROOT'] . "/app/models/");です。私は、このような

require_once MODELS . "classA.php"

class classB {.....}

として別のクラスを含めるようにしようとしているモデルファイルの一つで

私は未定義の定数MODELSのエラーを取得します。任意のアイデアをどのようにこれを修正するには?これらの定数がアプリケーションのどこからでもアクセスできるようにすることが理想的です。

のconfig.php:

$root = $_SERVER['DOCUMENT_ROOT'] . "/"; 
define("APP",$root . "app/"); // app folder 
define("CONFIG",$root . "app/config/"); // config folder 
define("MODELS",$root . "app/models/"); // models folder 
define("CONTROLLERS",$root . "app/controllers/"); // controllers folder 
define("DB",$root . "app/db/"); // database connection folder 
define("VIEWS",$root . "app/views/"); // views folder 
define("FUNCTIONS",$root . "app/functions/"); // functions folder 
define("LIBRARY",$root . "app/library/"); // library folder 
define("PUBLIC",$root . "public/"); // public folder 

のindex.php:

if(isset($_POST['submit']) && $_POST['submit'] == "Send") 
{ 
require_once MODELS . "contact.php"; 
$contact = new contact(); 
} 
+0

'申し訳ありません@u_mulder(「MODELS」、$値)' –

+0

を定義し、それはタイプミスでした、私の実際のコードは引用符 – joshpj1

+0

間違った定数に名前を付けたり、自分の設定ファイルが含まれていないのいずれかを含んでいます。 –

答えて

1

クイックフィックス悪いアイデア::

使用

require_once $_SERVER['DOCUMENT_ROOT'] . "/app/db/dbconnect.php"; 
require_once $_SERVER['DOCUMENT_ROOT'] . "/app/config/config.php"; 
require_once FUNCTIONS . "clean.php"; 
require_once MODELS . "core.php"; 
require_once MODELS . "user.php"; 
require_once MODELS . "browser.php"; 
require_once MODELS . "call.php"; 
require_once MODELS . "module.php"; 

エラーがいくつかのファイルから来ていますあなたのindex.phpファイルをグローバルr PHPマジカル定数__DIR__と一緒にeference pointを使用します。

を一般的に言って、それが引き起こすかもしれないので、あなたがそのように、あなたのプロジェクトを整理したくない:右のそれをやって

のindex.php

require_once __DIR__."/config.php"; // This loads your constants 

config.phpの

define('PATH', __DIR__."/any_folder_you_want"); // Repeat this for your folders 

将来的に大きな問題になるだろう。

ソリューション:

  • PSR-4のオートローディング戦略を自分で実装するcomposer
  • を使用する方法を学びます。 Example here

関連する問題