귀하가 제공 한 예에 근거하여 귀하의 혼란을 이해할 수 있습니다. 그것은 클래스를 사용하는 나쁜 방법입니다 ... 그리고 클래스가 사용되기 때문에 시스템 OOP를 만들지 않습니다.
하이브리드의 경우 클래스를 사용하여 함수의 네임 스페이스를 사용합니다. 하이브리드를 테마 프레임 워크로 간주 하면 개발자가 이름 충돌에 대해 걱정할 필요없이 자식 테마가 함수 이름을 재사용 할 수 있습니다. 많은 경우, 테마 프레임 워크 (부모 테마)는 너무 복잡하여 많은 하위 테마 개발자는 정확히 어떤 일이 일어나고 있는지 이해하지 못합니다.
하이브리드가 클래스 구조를 사용하지 않으면 하위 테마 개발자는 기존 함수 호출이 무엇인지 알고 있어야 이름 재사용을 피할 수 있습니다. 예, 모든 함수 앞에 고유 한 슬러그를 붙일 수는 있지만, 동일한 기능을 사용하려는 추가 시스템을 개발하는 경우 코드를 읽기 어렵고 유지하기가 어렵고 본질적으로 재사용 할 수 없습니다.
질문에 대답하려면
이런 씨발? 이 작업의 요점은 무엇입니까? 분명히 동일한 테마의 둘 이상의 인스턴스를 동시에 사용하지 않을 것입니다.
아니요, 동일한 테마의 둘 이상의 인스턴스를 사용하지 않습니다. 그러나 내가 말했듯 이이 경우 클래스 구조 는 전통적인 객체 인스턴스를 생성하지 않고 함수의 이름을 지정 하는 것으로 생각하십시오 . 클래스에서 모든 것을 함께 모아서 메소드를 호출 ( myClass->method();
)하거나 메소드를 직접 호출 ( ) 하도록 인스턴스화하는 myClass::method();
것은 읽기 쉽고 재사용 가능한 방식으로 네임 스페이스를 작성하는 매우 깨끗한 방법입니다.
물론 항상 myClass_method();
대신 비슷한 것을 사용할 수 있지만 다른 테마, 플러그인 또는 다른 프레임 워크 에서이 코드를 재사용하려면 모든 접두사를 다시 바꿔야합니다. 수업 시간에 모든 것을 깨끗하게 유지하면 훨씬 빨리 재개발하고 재배치 할 수 있습니다.
플러그인이 네임 스페이스 (이것이 우스운 일)에 대해이 작업을 수행한다고 가정 해 봅시다.하지만 테마 변명은 무엇입니까? 뭔가 빠졌습니까?
대부분의 상황에서 나는 당신에게 동의 할 것입니다. 그러나 그 대다수는 빠르게 쇠퇴하고 있습니다. 동일한 테마의 변형을 사용하는 MultiSite 설치에서 여러 사이트를 호스팅합니다. 사소한 차이로 동일한 테마를 반복해서 재생성하는 대신 부모 테마에 대한 단일 "클래스"가 있으며 모든 하위 테마가 해당 클래스를 확장합니다. 이를 통해 각 사이트에 대한 사용자 정의 기능을 정의하면서도 전체 네트워크에서 균일 성을 유지합니다.
한편으로 테마 개발자는 자신의 기능을 네임 스페이스로하는 클래스 기반 접근 방식을 선택할 수 있습니다 (동일한 코드의 청크를 반복해서 재사용하는 환경에서 작업하는 경우에는 우스운 일이 아닙니다). 반면에 테마 개발자는 하위 테마별로 쉽게 확장 할 수있는 클래스 기반 접근 방식을 선택할 수 있습니다.
이와 같은 테마를 코딩하면 어떤 이점이 있습니까?
사이트에서 하이브리드 만 사용하는 경우 최종 사용자로서의 이점을 거의 알 수 없습니다. 하이브리드에 대한 하위 테마를 작성하는 경우 이름 지정 및 확장 성의 이점이 있습니다. ThemeHybrid 에서 작업하는 경우 다른 프로젝트 (프로토 타입, Leviathan 등)에서 빠르고 효율적인 코드 재사용이 장점입니다.
그리고 하이브리드의 특정 기능을 좋아하지만 전체 테마가 아닌 테마 개발자라면 하이브리드가 아닌 프로젝트에서 GPL이라고 가정 할 때 빠르고 효율적인 코드 재사용이 장점입니다.