- The very old static hooks:
\OCP\Util::connectHook()
- The less old object based emitters: keyword
BasicEmitter where you listen directly on objects
- The newer way we want to go for everything in the future: Symfony event dispatcher listeners
For every hook of type 1) and 2), we should provide a Symfony event dispatcher event.
Then all app development needs to use only the Symfony event dispatcher ones in the future and those will be considered public API and the old ones deprecated.