Hooks and overrides
The two ways to plug code into the core, when to use each and their risks.
Tard o d’hora voldràs que el nucli faci alguna cosa que de sèrie no fa. Hi ha dues maneres d’aconseguir-ho, i triar bé marca la diferència entre una botiga mantenible i una que es trenca sola.
Hooks: la via recomanada
Un hook és un punt d’extensió que el propi PrestaShop t’ofereix. N’hi ha de dos grans tipus:
display*— injecten HTML en un lloc concret (la home, la fitxa de producte, el checkout…).action*— reaccionen a un esdeveniment del sistema (es valida una comanda, s’actualitza un estoc, es dóna d’alta un client…).
Et registres al hook a l’install() i implementes el mètode corresponent; PrestaShop
ja et crida quan toca. És net, no toca el nucli i sobreviu a les actualitzacions.
Overrides: potents i perillosos
Un override sobreescriu una classe o un controlador del nucli sense editar-lo
directament (els teus fitxers viuen a override/). És molt potent, però té un
risc real: si dos mòduls sobreescriuen la mateixa classe, entren en conflicte i
un dels dos deixa de funcionar. A més, dificulten el diagnòstic de bugs.
La regla
Hooks sempre que es pugui; overrides només com a últim recurs, quan no hi ha cap hook que permeti el que necessites. Si t’acostumes a buscar primer el hook adequat, els teus mòduls seran molt més robustos i conviuran bé amb els d’altres.