2012-06-01 3 views
0

나는 파일이 동일한 디렉토리의 다른 파일을 상속하는 파일 목록을 가지고 있습니다. 디렉토리의 모든 파일을 포함하고 싶습니다. 상속의 순서로 어떻게하면 오류가 발생하지 않도록 할 수 있습니까?상속 순서에 따라 파일을 포함하는 방법

+0

파일을 구문 분석하지 않으면 자동으로 수행 할 수 없습니다. 모든 파일을 포함시키고 오류가 있는지 확인하십시오. 그런 다음 더 이상 오류가 없을 때까지 주문을 변경하십시오. –

답변

1

직접 의존성을 계산하는 대신 spl_autoload_register()을 사용하여 자동 로딩을 사용할 수 있습니다.

이렇게하면 의존성이 필요에 따라 해결됩니다. "Just-In-Time"로딩과 같은 비트 :)

0

파일에 다른 파일과의 특정 종속성이있는 경우 먼저 "상위"파일을 포함시켜야합니다.

는 예를 들어, 파일해서, A.php에서 클래스 A가 :

<?php 

    class A { 
     // .. statements 
    } 

을 그리고 당신은 명명 된 B.php 확장하는 클래스 B가 :

<?php 

    require_once("A.php"); 
    class B extends A { 
    // .. statements 
    } 

아이디어입니다 해당 파일에서 함수/클래스/문을 사용하기 전에 먼저 필요한 파일을 "포함"/ "요구"합니다. PHP 5에서는 require 함수를 타이핑 할 필요없이 필요한 파일을 "자동으로"추가/포함시키는 자동 로딩 기능을 사용할 수 있습니다.

0

은 의존성을 찾기 위해 파서를 사용하지만 이는 엄청난 작업과 실제 성능 저하 요인입니다.

당신은 파일을 정렬하고 번호

001.init.php 
002.db_connect.php 
003.pre_filters.php 

로 접두사 그러나 당신이 그 (것)들을 정렬 할 경우 수동으로 오히려 파일 이름에 의존하는 pointles되어 있습니다.

클래스 상속을 사용하는 경우 자동 공급기를 결합하여 한 번만 사용할 수 있습니다. require_once를 사용하여 fles를 요구하고 모든 파일을 루프에 포함하도록 사용자 정의 자동 로더를 등록하십시오. 네 번째 파일에서 8 번째 파일의 클래스가 필요한 경우 오토로더는 미리 8 번째 파일을로드하고 require_once가 파일을 다시 포함하지 않으므로 inlude 루프가 8 번째 파일에 도달하면 아무 일도 일어나지 않습니다.

그러나 이미 깨달은 것처럼 : 파일 시스템에서 임의의 순서로 서로 의존하는 파일을 포함하면 이 아닙니다. 좋은 아이디어입니다.

관련 문제