[TYPO3-ect] TS Action chains for SPL objects
Elmar Hinz
elmar07 at googlemail.com
Tue Aug 7 21:13:20 CEST 2007
> Hi Steffen,
>
> well there are several resons. A write them down as a simple list.
>
> * Technically it would be an controller extending tx_lib_controller.
> * Similar concept to successfull JAVA struts, but goes some steps further.
> * The vision helps to keep the API of SPL objects simple and stringent.
I now have an example, how it helped me to simplify in the SPL objects API:
Old bananas list action:
public function defaultAction() {
// finding classnames
$modelClassName =
tx_div::makeInstanceClassName('tx_bananas_models_board');
$listClassName =
tx_div::makeInstanceClassName('tx_bananas_views_list');
$entryClassName =
tx_div::makeInstanceClassName('tx_bananas_views_entry');
$translatorClassName =
tx_div::makeInstanceClassName('tx_lib_translator');
// a simple processing chain
$model = new $modelClassName($this);
$model->load();
$view = $model->toObjectOfObjects($listClassName, $entryClassName);
$view->render($this->configurations->get('listTemplate'));
$translator = new $translatorClassName($this, $view);
return $translator->translateContent();
}
New bananas list action:
public function defaultAction() {
$model = $this->makeInstance('tx_bananas_models_board');
$model->load();
$view = $this->makeInstance('tx_bananas_views_list', $model);
$view->castElements('tx_bananas_views_entry');
$view->render('listTemplate');
$translator = $this->makeInstance('tx_lib_translator', $view);
return $translator->translateContent();
}
You see it now could probably directly be translated to TS:
defaultAction {
START = model
model = tx_bananas_models_board
model.do.1 = load
model.go.next = view
view = tx_bananas_views_list
view.do.1 = render
view.do.1.1 = listTemplate
view.go.next = translator
translator = tx_lib_translator
translator.1 = translateContent
translator.return = content
}
Well, there is stell an issue with the return syntax.
Regards
Elmar
More information about the TYPO3-team-extension-coordination
mailing list