Il nucleo di CMS Drupal non è basato sull'orientamento agli oggetti nella versione 7. Per la scrittura di moduli collegabili, ha un sistema "hook", per cui è possibile modificare il comportamento (modificando i dati passati) per funzioni di sistema definite.
Ad esempio, Drupal ha e API attraverso cui si creano array per definire i moduli tradotti in HTML. Esiste un hook definito chiamato hook_form_alter
in base al quale è possibile modificare qualsiasi matrice di moduli dopo la sua creazione e prima del rendering, consentendo di modificare completamente il modulo. Allo stesso modo, puoi fare lo stesso per query, e-mail, ecc. Generate tramite l'API.
Non sono esperto in OO o nei modelli di progettazione, quindi lo sfondo e le spiegazioni sono utili. Inoltre, sto uscendo solo da PHP (e MySQL), quindi non ho familiarità con gli esempi di come gli altri linguaggi fanno cose.
Poiché questi sono tutti basati su funzioni e callback, mi chiedo quali modelli di progettazione orientati agli oggetti forniscano questa funzionalità.