Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Entities #41

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

Entities #41

wants to merge 2 commits into from

Conversation

nibra
Copy link
Member

@nibra nibra commented Apr 9, 2024

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.

@nibra nibra marked this pull request as draft April 9, 2024 12:50
@HermanPeeren HermanPeeren mentioned this pull request Apr 9, 2024
@rdeutz
Copy link

rdeutz commented Apr 16, 2024

I think this is something for a bulid or buy decision. And because there are many available I would go with buy and not produce our own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants