contao/import — Issue #3155: Lambda- / Anonyme Funktionen für Callbacks
Author: importer
Created: 2011-11-29 20:59:49+00:00
State: open
Labels: Feature, framework

Oft erstellt man eine Klasse mit nur einer öffentlichen Methode um Beispielsweise SELECT-Optionen zu fetchen.
Dafür könnte man gut [Clousures](http://php.net/manual/en/functions.anonymous.php) von PHP 5.3 verwenden (Contao 3.0).

Ein Beispiel für den CheckBox-options_callback:
Geänderter Callback-Aufruf der [Controller.php](http://dev.contao.org/projects/typolight/repository/entry/tags/contao-2.10.beta1/system/libraries/Controller.php#L2575:)

```
// Options callback
if (is_array($arrData['options_callback']))
{
if (!is_object($arrData['options_callback'][0]))
{
$this->import($arrData['options_callback'][0]);
}

$arrData['options'] = $this->$arrData['options_callback'][0]->$arrData['options_callback'][1]($this);
}
else if(is_object($arrData['options_callback']))
{
$arrData['options'] = $arrData['options_callback']($this);
}
```

Der Aufruf könnte wie folgt aussehen:

```
// TL_DCA fields ...
'pagelayouts' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_css_class']['headline'],
'inputType' => 'checkbox',
'options_callback' => function($param)
{
return array('Option1','Option2','Option3');
}

)
```

--- _Originally created by Psi on June 9th, 2011, at 11:10am (ID 3155)_