Я можу зрозуміти вашу плутанину на основі прикладу, який ви надали. Це дійсно поганий спосіб використання класу ... і лише тому, що використовується клас, не створюється OOP системи.
У випадку з гібридом вони просто використовують клас для простору імен своїх функцій. Зважаючи на те, що Hybrid є тематичною основою , це робиться для того, щоб дочірні теми могли повторно використовувати імена функцій, без розробника не турбуватися про зіткнення імен. У багатьох випадках тематична рамка (батьківська тема) настільки складна, що багато розробників дитячої теми ніколи не зрозуміють, що саме відбувається під кришкою.
Якщо Hybrid не використовував структуру класів, розробникам дочірньої теми потрібно було б знати, що всі існуючі виклики функцій, щоб вони могли уникнути повторного використання імен. І так, ви можете просто встановити всі свої функції за допомогою унікального слугу, але це робить код важким для читання, важким для обслуговування та за своєю суттю не повторним використання, якщо ви розробляєте подальші системи, які хочуть використовувати той самий функціонал.
Щоб відповісти на ваші запитання
Wtf? Який сенс робити це? Очевидно, ви не будете використовувати два чи більше екземплярів однієї теми одночасно.
Ні, ви не будете використовувати два чи більше екземплярів однієї теми. Але, як я вже сказав, подумайте про структуру класу в даному випадку як про розширення імен функцій, а не про створення традиційного об'єкта. Збирати все разом у класі та або примушувати його до методів виклику ( myClass->method();
), або до виклику методів безпосередньо ( myClass::method();
) - це дуже чистий спосіб ідентифікувати речі з простору імен у читаному, багаторазовому використанні.
Звичайно, ви завжди можете використовувати щось на кшталт myClass_method();
цього, але якщо ви хочете повторно використовувати будь-який з цього коду в іншій темі, в плагіні або в антогерній рамці, вам доведеться повернутися назад і змінити всі свої префікси. Зберігати все в класі більш чисто і дозволяє переробити та перерозподілити набагато швидше.
Припустимо, що плагіни роблять це для простору імен (що смішно), але в чому тема виправдання? Я щось пропускаю?
У більшості ситуацій я погодився б із вами. Однак ця більшість швидко згасає. Я розміщую кілька сайтів на установці MultiSite, які використовують варіанти однієї теми. Замість того, щоб заново створювати одну і ту ж тему з незначними відмінностями, у мене є один "клас" для батьківської теми, і всі дочірні теми поширюють цей клас. Це дозволяє мені визначати спеціальні функціональні можливості для кожного сайту, зберігаючи загальне відчуття рівномірності у всій мережі.
З одного боку, розробники тем можуть обрати на основі класу підхід до простору імен щодо їх функціональності (що не смішно, якщо ви працюєте в середовищі, де ви знову і знову використовуєте шматки одного і того ж коду). З іншого боку, розробники тем можуть обрати підхід на основі класу для легкого розширення по дочірній тематиці.
Яка перевага кодування такої теми?
Якщо ви використовуєте на своєму сайті лише гібрид, переваги для вас як кінцевого користувача мало. Якщо ви будуєте дочірню тему для Hybrid, є переваги щодо простору імен та розширення. Якщо ви працюєте на ThemeHybrid , перевага полягає в швидкому та ефективному використанні коду для інших ваших проектів (прототип, левіафан тощо).
І якщо ви розробник тем, який любить специфічну особливість Hybrid, але не всю тему, перевага полягає у швидкому та ефективному використанні коду у вашому негібридному проекті (якщо це також GPL).