내가 본 많은 주제 (TwentyEleven 포함)와 온라인에서 찾은 예제 functions.php
에서 주제에 대한 파일을 빌드 할 때 모든 기능이 전체 범위로 선언됩니다. 명확히하기 위해 다음은 일반적인 함수 파일의 모습입니다.
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( 'foo_hook', 'my_theme_do_foo' );
클래스가 사용되면 상황이 조금 더 잘 캡슐화 될 수있는 것처럼 보입니다.
class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) );
두 번째 접근법의 장점 (내 겸손한 눈에서) :
- 더 짧은 기능 이름
- 인스턴스 변수에 대한 액세스 (가장 큰 장점 IMO)
- 글로벌 기능 없음
단점 :
- 클래스 이름은 여전히 충돌을 일으킬 수 있습니다
- 자식 테마로 "사용자 정의"하는 것이 명확하지 않습니다 (부모 클래스를 확장해야 함)
- 대부분의 테마는 이런 식으로하지 않았으므로 트렌드를 버리고있을 것입니다
아마도 몇 가지 사항을 간과하지만 OOP 방식을 사용하지 않는 이유가 궁금합니다. 그것은 나에게 조금 더 깨끗하다고 느낀다. 내가 틀렸을 까?
나는 WordPress 테마 개발에 익숙하지 않으므로 이것이 WP 커뮤니티에서 일반적인 지식이라면 용서하십시오 :). 왜 사물이 왜 그런지 배우려고 노력했습니다.