Skip to content
Niels Braczek edited this page Dec 3, 2015 · 2 revisions

Orthogonal Component Structure

Decision

An orthogonal system is introduced, where two different kinds of components are distinguished:

  • Vertical: Weblinks, Contacts, Users, Content, ...
  • Horizontal: Versioning, translating, tagging, commenting, ...

Any horizontal component works with any vertical component out of the box being themselves agnostic about other components. This way, com_contact, com_weblinks, even com_users would automatically have ‘inherited’ tagging and versioning in 3.2 / 3.3 without the need to change a single bit of code in these components.

Reason

This approach allows any component to take advantage of new capabilities that are designed to be used across extensions. The orthogonal structure is a design supporting change.