2016-11-06 2 views
0

내 응용 프로그램은 모든 요청을 인덱스 파일을 통해 라우팅합니다. 이 파일의 파일명은인덱스 파일에서 상수 정의

require_once $_SERVER['DOCUMENT_ROOT'] . "/app/config/config.php"입니다.

이 구성 파일은 다른 곳에서 사용할 수 있도록 경로 상수를 정의하지만 작동하지 않는 것 같습니다. 예를 들어 config.php에서 나는

define('MODELS', $_SERVER['DOCUMENT_ROOT'] . "/app/models/");입니다. 나는 다른 클래스를 포함하는 것을 시도하고 모델 파일 중 하나에서

같은 class classB {.....}

require_once MODELS . "classA.php"

로 나는 정의되지 않은 상수 모델의 경우 오류가 발생합니다. 어떤 아이디어가 이것을 고치는 방법? 나는이 상수가 내 응용 프로그램의 어느 곳에서나 액세스 할 수있는 것이 이상적입니다.

의 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

은 '('모형 ', $ 값)를 정의' –

+0

@u_mulder 죄송합니다, 즉 오타했다, 내 실제 코드는 따옴표 – 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__와 함께 추측 포인트.

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