En 2.1.1, ça a marché du 1er coup pour moi, avec la surcharge de getHooks() dans le module.
Le module en question : https://github.com/roadster31/GiftVoucher
Quel est le problème que vous pouvez rencontrer (et que vous avez sans doute rencontré) ? C'est de définir dans le config.xml de votre beau module un ID pour votre hook qui ne soit pas "cazmelizable", c'est à dire transformable en nom de méthode PHP. Par exemple, à cause du tiret entre product et edit, "giftvoucher.product-edit.hook" n'est pas camelizable:
<hook id="giftvoucher.product-edit.hook" class="GiftVoucher\Hook\HookManager" scope="request">
<tag name="hook.event_listener" event="product-edit.right-column.bottom" type="back" method="onProductEditRightColumnBottom" />
</hook>
Vous obtenez alors le message :
"Service id "giftvoucher.product-edit.hook" cannot be converted to a valid PHP method name".
Damned ! Du coup, vous changez l'ID du hook, en "giftvoucher.product_edit.hook", vous videz le cache (un très beau réflexe) et le tour est joué !
Hé bien non ! Vous obtenez l'erreur :
"ServiceNotFoundException: You have requested a non-existent service "giftvoucher.product-edit.hook".
Mais pourquoi ? Gniiiiiiiiii ! Raaaahhhh ! Pourquoiiiiiiiiiiiiiii ? Ras le bol, je réinstalle OS Commeeeeeerce !
Relax, prends un chewing-gum. C'est parce que la table 'module_hook' n'a pas été mise à jour, malgré votre changement d'ID et le vidage du cache. Il y a toujours dans la colonne "classname" "giftvoucher.product-edit.hook" !
Ni une ni deux, vous modifiez à la main dans la table module_hook cette fichue valeur, et la remplacez par "giftvoucher.product_edit.hook". Vous videz le cache (oui, encore une fois), et là... CA MARCHE !
Donc attention à ces ID de hooks, des points, des underscore, des chiffres, des lettres, mais pas de tirets ou d'autres caractères cabalistiques.
Ce problème de MAJ de la base sera corrigé en 2.2, grâce à cette mirifique PR : https://github.com/thelia/thelia/pull/1309, que vous pouvez d'ores et déjà appliquer à vos 2.1 chéries. Vous pourrez alors patouiller joyeusement sur les ID de hooks sans craindre le honteux châtiment de la camelization.