2017-02-06 3 views
0

내가이 구조의 프로젝트가 존재하지 : index.php 내부PHP 클래스는 찾았지만

/root 
    /api/class/user.php 
    /api/autoload.php 
    /api/api.php 
    /index.php 

을 나는 필요 (./api/autload.php) 내가 필요 autoload.php 내부 (class/user.php) 및 (api.php)

내가 만드는 경우 autoload.php 내부의 사용자 인스턴스, 아무런 문제가 없습니다. 하지만 api.php에 사용자 인스턴스를 만들면 클래스를 찾을 수 없습니다.

여기서 오류가 있습니까? 이 잘못된 구조입니까? 나는 어떤 htaccess도 사용하지 않는다.

편집 나는 약간의 변경을 : 구조는 당신을위한 올바른 ...

config.php -> I define some constant 
autoload.php -> require config.php + require all my class 
api.php -> I require autolaod.php 
index.php -> I require api.php 

지금 작동하는 것 같다 : 내가이 파일에 자동로드를 분할?

당신이 쓴 것과 autoload.php

define("LIB_PATH", "lib"); 
define("CLASS_PATH", "class"); 
require(LIB_PATH . "/jwt.php"); 

require(CLASS_PATH . "/progetto.php"); 
require(CLASS_PATH . "/azienda.php"); 
require(CLASS_PATH . "/entrata.php"); 
require(CLASS_PATH . "/uscita.php"); 
require(CLASS_PATH . "/user.php"); 
+0

오토로더 코드를 표시하면 클래스 파일에 잘못된 경로를 사용하고있는 것입니까? –

+0

autolaod 클래스를 사용하면 경로가 정확하다고 생각합니다. 이제는 내 질문이 바뀝니다! – kikko088

+0

이제는 더 의미가 있습니다 ... –

답변

1

은 api.php 클래스/user.php 필요가 없습니다. class/user.php는 index.php (autoload.php를 통해)와 api.php (직접)에서만 필요합니다.

해결 방법은 require('./class/user.php')을 api.php 파일에 추가하는 것입니다.

편집

좋은 방법은 모든 autoload.php에서 클래스 파일의 요구하도록해야하며되는 index.php 자동로드, api.php, 필요한 다른 모든 새 파일을 필요로한다.

답안의 편집이 이제 좋은 해결책처럼 보입니다.

+0

오토로더를 사용하는 경우 수동으로 요구되는 점 –

+0

내 질문을 편집합니다! – kikko088

+0

@ Mark Baker 첫 번째 질문에서 autoload.php는 non/api/folders 파일 만 필요로하기 때문에 OP가 api.php 문제 만 수정하려고한다고 생각합니다. –