Teme wordpress OOP

Folositi OOP pentru temele wordpress? Daca da, cum structurati fisierele si clasele?
Ma refer strict la proiectele de o complexitate cel putin medie ca banuiesc ca nu face nimeni OOP pentru o pagina de blog simplu. Sau…da?

Pentru prima temă OOP am folosit clase (de fapt o clasă) strict pentru namespacing.

Apoi am început să mă documentez pe subiect și am aflat că e bine să urmez principiul „do one thing only and do it well”, că nu este nici o problemă dacă am 50 clase în 50 fișiere (și nu 50 clase într-un singur fișier), că namespace-urile fac minuni șamd.

Acestea fiind spuse, structura de directoare arată cam așa (presupunem că suntem în wp-conent/themes/numeTema):

includes/numeTema/Navigation.php
includes/numeTema/Breadcrumb.php
includes/numeTema/admin/Foo.php
includes/numeTema/Ajax/Foo.php
[...]
functions.php

În functions.php fac următoarele:

  • definesc diverse constante;
  • includ toate fișierele necesare ;
  • instanțiez clasele.

În plus, am grijă ca numele clasei să fie același cu numele fișierului iar namespace-ul să fie numeTema. Astfel pot avea numeTema\Navigation sau numeTema\Walker_Nav_Menu.