Sophist
Guest
I don't want anyone to get the wrong idea about this post. I am a fan of fabrik and believe in the overall design (for example the use of plugins is brilliant)...
However, I can't help but feel that the number of bugs we are seeing and reporting are a product of the way some of the internals have been implemented which seem far more complicated than it needs to be. So I would like to open up a discussion on whether other people agree with my thoughts and about whether it makes sense to simplify and clean before 3.1 is released. So, here are my thoughts...
1. At present we have Lists, Forms, Groups and Elements. But it seems to me that Lists are actually doing two things: A. They define the display of data in a summary tabular form; and B. They define the structure of the database i.e. which tables join to which. I am not sure whether this makes sense or whether these two functions should be separated.
2. I think that database functions should be separated out into a handler - by doing this you can have the Lists, Forms, Groups & Elements provided with just the data they want and leave it to the database handler to determine the best way of fetching this data.
3. The way that Repeating Groups are handled seems to me to be over complicated.
At present for a list we either do a single select and receive multiple rows (because of the join with the repeating group) which are displayed even if the user doesn't want any of the repeating data displayed), or if you set Merge Rows in the List, then it makes multiple Select calls, with second and further calls based on the individual ids from the master table which for a large table could potentially be quite bad for performance.
However it seems to me that (in most cases at least) Lists will not display repeating groups - and if the developer wants to do this, then we really need a tree-based display of data in Fabrik to handle this (which is a separate discussion topic really). So lists will mostly only need data from the main table, in which case we can make a single Select which returns the exact data we need and avoid doing a join which returns multiple rows for each row in the master table which then need to be merged.
On the other hand, a Form only returns one row for the master table, and we could then do a second Select for the repeating groups i.e. a maximum of two calls, each of which will be against a single key.
4. It seems to me that with a brand new release for Joomla3, we have an opportunity to clean up the structure and code and make it simpler and hence less buggy.
So, what do other people think...??
P
However, I can't help but feel that the number of bugs we are seeing and reporting are a product of the way some of the internals have been implemented which seem far more complicated than it needs to be. So I would like to open up a discussion on whether other people agree with my thoughts and about whether it makes sense to simplify and clean before 3.1 is released. So, here are my thoughts...
1. At present we have Lists, Forms, Groups and Elements. But it seems to me that Lists are actually doing two things: A. They define the display of data in a summary tabular form; and B. They define the structure of the database i.e. which tables join to which. I am not sure whether this makes sense or whether these two functions should be separated.
2. I think that database functions should be separated out into a handler - by doing this you can have the Lists, Forms, Groups & Elements provided with just the data they want and leave it to the database handler to determine the best way of fetching this data.
3. The way that Repeating Groups are handled seems to me to be over complicated.
At present for a list we either do a single select and receive multiple rows (because of the join with the repeating group) which are displayed even if the user doesn't want any of the repeating data displayed), or if you set Merge Rows in the List, then it makes multiple Select calls, with second and further calls based on the individual ids from the master table which for a large table could potentially be quite bad for performance.
However it seems to me that (in most cases at least) Lists will not display repeating groups - and if the developer wants to do this, then we really need a tree-based display of data in Fabrik to handle this (which is a separate discussion topic really). So lists will mostly only need data from the main table, in which case we can make a single Select which returns the exact data we need and avoid doing a join which returns multiple rows for each row in the master table which then need to be merged.
On the other hand, a Form only returns one row for the master table, and we could then do a second Select for the repeating groups i.e. a maximum of two calls, each of which will be against a single key.
4. It seems to me that with a brand new release for Joomla3, we have an opportunity to clean up the structure and code and make it simpler and hence less buggy.
So, what do other people think...??
P