core
core copied to clipboard
[Extensions] Consider contracts
Symfony uses contracts for some interfaces, like Symfony\Contracts\Translation\TranslatorInterface.
This has the advantage that component A can implement and use it without requiring component B.
Proposal:
- introduce a Zikula extension contracts package
- use this for interfaces and base classes from extensions like Content and MultiHook which currently live in Zikula\ExtensionsModule\ModuleInterface
- move Block handler interface and base class into that contracts namespace
- move Search helper interface and base class into that contracts namespace
- outsource Search module and re-include it as VA extension (like Legal, OAuth, PageLock, Profile) to make having a site search optional again
cc @gfr