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
.