2011-01-30 4 views
0

많은 PHP 파일이 있습니다. 그것은 Wordpress 테마이기 때문에 충돌을 피하기 위해 클래스에 모든 함수를 포함해야합니다.클래스에 포함 된 PHP 함수를 추가 하시겠습니까?

내가 원하는 것은 "접두사"(클래스 이름의 첫 번째 부분)로 테마 이름을 사용하는 것입니다. 다른 클래스의 PHP 파일에도 동일한 클래스를 사용할 수 있습니까?

이 보이게하는 방법입니다 :

myfunctions.php 
myfunctions_extra.php 

"myfunctions.php는"class my_class에 추가하는 기능 test이 포함되어 있습니다.

"myfunctions_extra.php"에는 에 추가해야하는 test2 기능이 포함되어 있습니다.

가능합니까? 방법?

+0

왜 돈 ' 네임 스페이스를 사용합니까? 또는 한 클래스에 다른 파일의 함수에 대한 별칭 인 메소드가 있습니까? –

답변

0

PHP 5.3에는 없습니다. 다음 버전에는 PHP 5.3에서 가능할 수있는 특성이 포함될 것입니다. 다른 접근 방법을 찾으십시오.)

어쩌면 네임 스페이스를 사용할 수는 있지만 Wordpress가 어떻게 대응하는지 모르겠습니다.

+0

당신 말이 맞아요. 지금까지 행운이 없습니다. –

1

아마도 inheritance과 같은 것이 당신이 찾고있는 것입니다.

+1

나는 그것을 상속이라고 말하면서 바꿀 것이다. 그것은 결국입니다. –

+0

더 많은 이해가 가미 된 뒤늦게! – Prisoner

0

다른 클래스의 함수에 바인드 된 메소드가있는 하나의 기본 클래스가 있습니다. 따라서 예를 들어, create_sidebar()MyClasscreate_sidebar() 함수가 시작된 파일에서 함수를 호출합니다.

0

불행히도 PHP는 부분 클래스 개념을 지원하지 않습니다. 이런 식으로 문제를 풀 수는 없습니다.

정말이 수업이 필요합니까? PHP 5.3에서 실행중인 경우 파일에 대한 네임 스페이스를 정의 할 수 있습니다. 그렇다고해서 Wordpress가 어떻게 작동하는지는 알 수 없습니다.

또 다른 옵션이 "가짜"모든 방법에 접두사를 추가하여 이름 공간이며,이 같은 상태의 일종을 유지해야하는 경우 단지 전역 변수를 유지 :

$myns_settings = array(..); 

// file1.php 
function myns_firstfunc() 
{ 
    global $myns_settings; 
    // You can access myns_settings here 
} 



// file2.php 
function myns_secondfunc() 
{ 
    global $myns_settings; 
    // You can access myns_settings here as well 
} 
관련 문제