2012-08-07 2 views
1

나는 여러 함수가 서로 독립적이며 한 클래스에 래핑하는 데 사용되어 spl_autoload_register()을 통해 자동로드 할 수 있습니다. 하지만 이제는 유틸리티 클래스가 커지면서 거의 1000 라인이됩니다.자동 로딩 유틸리티 함수

이제 각 클래스/파일로 각 함수를 분리 할 생각입니다.

이 당신이 가장 좋은 방법은 어떻게 생각하십니까 좋은 아이디어라고 생각하는 경우 :

// load_foo.php 
class load_foo 
{ 
    public function __construct ($params,..) 
    { 

    } 
} 

// usage 
new load_foo($params); 

또는 분명히 당신이 다음 "객체"의 개념을 사용하지 않기 때문에

// load_foo.php 
class load_foo 
{ 
    public static function exec ($params,..) 
    { 

    } 
} 

// usage 
load_foo::exec($params); 
+1

먼저 클래스 시스템을 하이재킹하여 기능 모음으로 사용하는 것은 좋지 않습니다. – rid

+1

@Radu 지금 OP가 이것을 실현하고 있다고 생각합니다. – Matt

+0

클래스가 그만큼 클 경우 (합법적으로 큰 경우) 상속을 사용하여 해당 기능에보다 특정한 하위 개체로 분할하는 것이 가능할 수 있습니다. 절차 기능의 대안으로 사용하는 경우 먼저 개체를 사용하는 것은 좋지 않습니다. (힌트 : 모든 것을 객체로 만들 수 있으며, 먼저 조금씩 멈추고 생각해야합니다.) 중요한 리팩터 인 @IMB에있는 것처럼 보입니다. – Matt

답변

1

"정적"옵션 인 load_foo :: exec ($ params)를 사용하는 것이 가장 좋습니다.

즉, 나는 "각 클래스/파일마다 각 기능 분리"라고합니다. 너무 많은 파일과 수업으로 끝날 것입니다. 기능이 관련이 없다고해도 (사용자의 의견대로) 오토로더를 사용하여로드하는 몇 개의 파일에 기능을 넣으십시오.

다른 점은 APC 또는 xcache와 같은 가속기를 사용할 수 있다는 것입니다. 이것들은 코드의 미리 컴파일 된 버전을 유지하여 파일 로딩의 성능 영향을 최소화합니다.

관련 문제