2017-05-19 2 views
0

Init.php 파일이 core 폴더에있는 프로젝트의 디렉토리 구조가 다음과 같습니다. 이 파일을 views 폴더 아래의 모든 페이지에 포함시켜 classes 폴더 아래에 정의 된 모든 클래스를 자동으로로드하려고했습니다. 내가 오류여러 디렉토리에 설정 파일을 포함하는 방법 PHP 페이지

require_once를 (클래스/Config.php에) 다음은 나에게주는 views 폴더의 하위 디렉토리에서 require_once '../../core/Init.php';을 포함하고 때 :

에서 해당 파일 또는 디렉터리 : 스트림을 열지 못했다 views 폴더

require_once 'core/Init.php'; 

핵심에서 모든 페이지에이 파일을 포함

/Init.php

내 모든 파일, 디렉토리 및 뷰 폴더의 하위 디렉토리에이 하나의 파일 ( core/Init.php)를 포함시킬

Directory Structure

다음과 같이

내 디렉토리 구조입니다. 어떤 사람이 내가 어떻게하면 좋을지 생각합니다.

감사합니다.

답변

0

문제의 근원은 코드가 실제로 여러 디렉토리에서 실행되는 것입니다.

대신 단일 입력 지점 (일반적으로 "부트 스트랩 파일"이라고 함)을 통해 호출해야합니다.

기본적으로 다음과 같이합니다.

$config = require __DIR__ '/../config.php'; 
$page = $_GET['page'] ?? 'home'; 

if (in_array($page, $whitelist)) { 
    require __DIR__ . "/path/to/pages/{$page}.php"; 
} 

아, 템플릿을 '보기'라고 말하지 마십시오. 그들은 그렇지 않습니다.

0

구조! 응용 프로그램을 시작할 때 어디에서 일을 다음 spl_autoload_register 기능 및 설정을 항상 액세스 할 수있는 일을 추가 찾는 방법을 알려 :

.../www/index.php 
eg (in index.php): 
chdir(__DIR__): 

이제 모든 일이에 .../www /에서 디렉토리를 시작합니다. 이 시점부터 포함시키려는 모든 경로를 설정할 수 있습니다. 상대 또는 절대.

친절한 답변