By Flavius Andrei Isac on 2018-05-25 17:10 in GSoC 18 Webservices in Joomla

Date: 18th May 2018

Time: 20:00 (CEST)

Meeting was attended by:

  • George Wilson

  • Andrei Isac

Meeting venue: Hangouts

 

Summary

The suitability of reusing the Eloquent framework was discussed. Many implementation differences in the database connection part have been discovered between Joomla and Eloquent implementation. The decision of starting from scratch, implementing our own Active Record pattern in Joomla entities has been taken. The project can be followed here.

 

Minutes of Meeting

  1. Query Builder

 

Issue: Query Builder -> quite different in Eloquent and in Joomla. Do we alter Joomla’s database query builder, or we will use it just to process the query as a string? Basically an interface between the Driver and the rest.

 

Solution: We don’t want to alter Joomla’s database query builder because backwards incompatible breaks would be large. Basically if the existing query builder structure doesn’t work then we need to modify it to make it work. There is potential for adding new methods to our existing query builder if we need to. However we shouldn’t rely on it

 

  1. Repository

 

Issue: Do we work in Joomla Framework Database project, seems the best place to do the job.

 

Solution:  Two options.

    1. Create a new Joomla Framework repository for this (for now we can just work in an empty repository in joomla-projects)

    2. Just do this directly in the CMS. Namespace it with Joomla\CMS\MVC\Entity (or similar)



  1. Project planning

 

Issue: Can we divide the problem into smaller pieces? Right know I’m just thinking how to do things, but I’m not sure about anything. I feel that the Eloquent architecture is really high coupled, which makes it hard to understand.


Solution: Start work on a basic implementation https://github.com/joomla-projects/entities/blob/master/base.php at this point are mainly going to take inspiration from eloquent but there will also be some things to pull out from JTable (e.g. the specifics of the database driver support).