joomla x overview
TRANSCRIPT
Why?
Current version is based on a 10 years old, outdated technology
Backend technologies like Laravel and frontend
technologies
like Angular2 and React attrack our developers.
Market runs away from Joomla!
Not using state-of-the-art technology is like a death sentence to the project.
A new technological base is urgently needed.
Current version is based on a 10 years old, outdated technology
Backend technologies like Laravel and frontend technologies like Angular2 and React attrack our developers.
Market runs away from Joomla!
Not using state-of-the-art technology is like a death sentence to the project.
A new technological base is urgently needed.
Orthogonality
The Joomla! X (formerly known as Joomla! 4) architecture is
based
on the principle of Orthogonal Components.
This principle describes Vertical Components,
like Content, Weblinks, or Users,
that are combined with Horizontal Components,
like Workflow, Tagging, or Versioning.
Horizontal Components add functionality to Vertical
Components
without explicit code in the components.
The Joomla! X (formerly known as Joomla! 4) architecture is based on the principle of Orthogonal Components.
This principle describes Vertical Components,
like Content, Weblinks, or Users,
that are combined with Horizontal Components,
like Workflow, Tagging, or Versioning.
Horizontal Components add functionality to Vertical Components without explicit code in the components.
Storage
Courtesy DRs Kulturarvsprojekt
Components use Entities to communicate with the
Storage Layer through Repositories,
which can use different connections for read and write access.
Doctrine2 DBAL adds out-of-the-box support
for MySQL, SQLite, PostgreSQL, Oracle, MS SQL Server,
and other sources as CSV or XML files and
web services can be added transparently.
Relations are resolved automatically.
Components use Entities to communicate with the Storage Layer through Repositories,
which can use different connections for read and write access.
Doctrine2 DBAL adds out-of-the-box support for MySQL, SQLite, PostgreSQL, Oracle, MS SQL Server,
and other sources as CSV or XML files and
web services can be added transparently.
Relations are resolved automatically.
Rendering
Courtesy Kisa Naumova
Components enclose Entities with ContentTypes
to add semantics to the data.
No layout information is provided, because there's no
knowledge about the context.
Renderers turn content into HTML, JSON, plain text or arbitrary other formats.
HTML rendering is a bit different, though, since the
content
has to be embedded into the layout.
Components can add own ContentTypes.
Components enclose Entities with ContentTypes to add semantics to the data.
No layout information is provided, because there's no knowledge about the context.
Renderers turn content into HTML, JSON, plain text or arbitrary other formats.
HTML rendering is a bit different, though, since the content has to be embedded into the layout.
Components can add own ContentTypes.
PageBuilder
Courtesy Ivanevian
For the web, content is organised using Pages based on Templates.
Master Layouts are used to combine static and dynamic
content,
that gets used on multiple Pages.
A Page defines a URL, the underlying Master Layout, and
additional
static and dynamic content.
Any component's output can be viewed in any position,
and the blocks can be related to each other to show data added
by
the Horizontal Components.
For the web, content is organised using Pages based on Templates.
Master Layouts are used to combine static and dynamic content, that gets used on multiple Pages.
A Page defines a URL, the underlying Master Layout, and additional static and dynamic content.
Any component's output can be viewed in any position,
and the blocks can be related to each other to show data added by the Horizontal Components.
Approach
Too many obstacles, like tight coupling and insufficient
tests,
made incremental development a nightmare.
A clean base allowed making fast progress, so the basics
already
are in place.
All architectural goals defined in Odense and Athens are
or
will be implemented.
A release will not happen without a one-click upgrade for the
core
and a reasonable support for 3PD extensions.
Too many obstacles, like tight coupling and insufficient tests, made incremental development a nightmare.
A clean base allowed making fast progress, so the basics already are in place.
All architectural goals defined in Odense and Athens are or will be implemented.
A release will not happen without a one-click upgrade for the core and a reasonable support for 3PD extensions.