Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Summary
This Specification addresses a significant gap in Joomla's current architecture: the absence of an Object-Relational
Mapping (ORM) system or a comprehensive implementation of relations between entities. Historically, JTable was intended
to fulfill this role within Joomla, yet it lacks the capabilities to manage complex entity relationships effectively. A
notable attempt to bridge this gap was made during Google Summer of Code (GSoC) 2018 with the creation of an entities
package for the Joomla Framework, inspired by Laravel's Eloquent AR (Active Record) implementation. However, this solution remains unfinished and does not include a tree-implementation, which is crucial for fully replacing JTable and JTableNested functionalities.
2. Why Bother?
The integration of an ORM system or a robust mechanism for handling entity relationships is critical for several
reasons:
Complex Data Handling: Joomla's current limitations in managing complex data relationships hinder its ability to
support advanced and dynamic web applications. An ORM system would allow for more sophisticated data interactions and
business logic implementation.
Developer Productivity and Satisfaction: The lack of an efficient way to manage entity relationships adds
unnecessary complexity and overhead for developers. Providing a more intuitive and powerful solution could
significantly enhance developer experience and productivity.
Modernizing Joomla's Architecture: Adopting ORM technology or similar solutions would be a substantial step
forward in modernizing Joomla's architecture, making it more competitive with other content management systems and
frameworks that already offer these capabilities natively.
Improving Performance and Scalability: Efficiently managing entity relationships can lead to better performance
and scalability of Joomla applications, as it allows for optimized database queries and data handling strategies.
This RfC aims to catalyze a comprehensive discussion on enhancing Joomla's capabilities in managing entity relationships, exploring various technological approaches and the potential for integration with existing and new Joomla projects. By addressing this aspect, Joomla can significantly improve its framework's robustness, appeal to a broader developer audience, and enhance its overall competitiveness in the CMS market.