Blog

Learn about new releases, tips & tricks

Written by iTeam

Published on 18 January 2018

Hits: 1581

Joomla 4 tutorials: Orthogonal Component Structure Revolution

If you’re a passionate Joomla! user reading every possible news about upcoming Joomla! 4, there are high chances you seen something called “Orthogonal Component Structure” but not many have ever tried to explain what that strange term really means for the users and developers. In this blog post, we will touch that topic and try to reveal some secrets behind it.

What Is Orthogonal Component Structure ?

Mathematics are often cluttered with expressive terms with no meaning outside it’s constraints, often causing a sudden loss of interest in the subject matter. You will easily find the definition of orthogonality on the web, but it still won’t give any clue how it relates to Joomla! development.

Orthogonal Component Structure in Joomla! sense means that there are two types of components, vertical and horizontal - hence the name orthogonal.

Vertical Components

Or in other words, core components such are Content, Users, Contacts, Weblinks… which all are developed separately forming what we know as Joomla! CMS.

Horizontal Components

Think of horizontal components like extended features for vertical component, adding on top of it. These are components like Tagging, Versioning or Custom Fields which can’t work per se, and must rely on other vertical component.

Reasoning Behind It

It’s simple. Orthogonal Component Structure allows any component to use new capabilities designed to be used across extensions. Even third-party developers will be able to take advantage of it.

Horizontal Components Galore

There are numerous examples where you can extend core, or vertical component with horizontal one, and many users have been doing that one way or another. Typical example would be Fields that can be used to enrich your articles and users with new set of custom fields.

Joomla! 4 should bring a new “Workflow” component which will allow to completely change how you publish articles. You can read more about it here