[TYPO3-ect] The Big Plan

Mario Matzulla mario.melanie at arcor.de
Wed Jul 5 17:39:43 CEST 2006


Hi Elmar, hi list,
Elmar Hinz schrieb:
> Hello,
> 
> as Christopher has asked for it, here comes the first part of "The big
> Plan". The first part contains an intro and 3 questions. The
> I publish it, so that it can be discussed.
> 
> The next parts will contain my proposals to answer this questions. The
> answer to the 3rd question is an internal question of the forms team.
> 
> I have registerd the key "form" for it. We will have a set of pretty short
> keys for the coordinated extensions: lib, div, forms, cal, articles, ...
> 
> I count cal into this. I think we can make cal a valuable example for the
> usage of lib + div + forms as soon as they are stable enough.

You can count cal into this!!! :)

Regards,
Mario
> 
> Regards
> 
> Elmar
> 
> 
> 
> 
> 
> The Big Plan of ECT (TM)
> 
> or
> 
> How formslib and MVC are related
> 
> 
> Introduction
> ============
> 
> When I started with object orientated web programming I played a little
> with the idea of general dataset objects. The idea is simple. In the
> mayority of cases each form we edit in the webpage responses exactly to one
> dataset in of the underlieing database. So why not making it one object
> that does it all? Inserting, updating, selecting, deleting, displaying and
> forms generation all with one object. If I build this object in a generic
> way, that means I make it configurable, I only need to programme it once.
> You got the idea?
> 
> I still can go a step further. In many cases the configuration could be
> guessed directly from the type of the database fields. I only need to
> finetune the forms configuration. Similar concepts of rapid prototyping
> have become popular with ruby on rails within the last years.
> 
> Such monolithic idea of one generic object can work in practice, but has
> disadvantages:
> 
> - The class of an almighty object is quickly getting big and confusing.
> - I need to integrate all kind of checkings and evaluations.
> - Forms are not the only source of our data.  Data income can also origin
> in from parsed emails, newsfeeds, daemons, ...
> - The web is not the only target of database data ....
> 
> After some experiences with this, you will understand that it is not the
> best idea to combine forms and queries into the same object. They have
> different functionality, they should be separated. At least at this point I
> understood the advantage and principle of the model view controller (MVC)
> paradigma.
> 
> You also will discover that a single general object for view or model is
> still unhandy with all those different types of fields. You better do it
> with libraries of objects. Different objects but with common inherited
> interfaces.
> 
> While you are separting different libraries for queries and forms the
> concepts of object generation from configuration is still useful. Jeff
> Segars and Michael Scharkow have proposed "tcaObjects" for the queries,
> where the configuration is taken from the TCA. TYPO3 TCA is already
> configured within the BE. We just need to reuse it. The forms can retrieve
> parts if their configuration from TCA, but it needs additional finetuning.
> 
> 
> Important questions
> ===================
> 
> Separation of queries and forms raises a few new questions:
> 
> 1.) How to coordinate the collaboration of forms and queries?
>     ---------------------------------------------------------
> 
>     A part of the answer is the controller.
> 
> 
> 2.) How to exchange the data between view and model without a lot of
> coding?
> ------------------------------------------------------------------------
> 
>   This is an important question, because one advantage of the monolithic
> solution is, that you do not need to program this type of exchange. MVC
> should keep this disadvantage is small as possible.
> 
>   One solution is to use a central php 5.0 interface frameworki: SPL -- the
> Simple PHP Library. It makes it this exchange surprisingly simple.
> 
> 
>  3.) How to use the ideas of rapid prototyping for building forms?
>      -------------------------------------------------------------
> 
>   In rails the configuration of rapid protoping is retrieved from the DB
> fields. In TYPO3 we invert this procedure. We build the configuration (TCA)
> before the DB tables are generated. We usually do this with the
> kickstarter. We can understand the kickstarter as an rapid prototyping wizard.
> 
>   However the TCA does not contain all configuration we need to generate
> the forms. We need to discuss the best solutions to fill this gap.
> 
> 



More information about the TYPO3-team-extension-coordination mailing list