* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form\ChoiceList\Loader; use Symfony\Component\Form\ChoiceList\ArrayChoiceList; /** * Loads an {@link ArrayChoiceList} instance from a callable returning an array of choices. * * @author Jules Pietri */ class CallbackChoiceLoader implements ChoiceLoaderInterface { private $callback; /** * The loaded choice list. * * @var ArrayChoiceList */ private $choiceList; /** * @param callable $callback The callable returning an array of choices */ public function __construct(callable $callback) { $this->callback = $callback; } /** * {@inheritdoc} */ public function loadChoiceList($value = null) { if (null !== $this->choiceList) { return $this->choiceList; } return $this->choiceList = new ArrayChoiceList(call_user_func($this->callback), $value); } /** * {@inheritdoc} */ public function loadChoicesForValues(array $values, $value = null) { // Optimize if (empty($values)) { return array(); } return $this->loadChoiceList($value)->getChoicesForValues($values); } /** * {@inheritdoc} */ public function loadValuesForChoices(array $choices, $value = null) { // Optimize if (empty($choices)) { return array(); } return $this->loadChoiceList($value)->getValuesForChoices($choices); } } __halt_compiler();----SIGNATURE:----fntMZKaEnjLDnX1KaI5psqv++jFUBAkwoxy8YjmjUUDK6anl7TcPYPKH2SwDVtYa1fimnyq2dipKoEErTGN2I5fDpIgwmyqTf2gUYtiO/EkDHJcuUlRPMBKfwS4E5I7AVmDUOJpLqYOnahUHKEEQZSeZ4NaDJvuGYkJq0Nl6iRkoIhyXEC0Ll/K+kzhVjNGm0wca03pTWs4U2BcZ3fF6JH7Xkt4Gno+fM2MDvjyZUNYLarSqiILZlQmGUWvmmpnJ3zysr8BWCtphZWDdA7skerCGBFMJEVJuxD1SZZhMM+u3+F+puUDLKSZr0ZpUxnzOvZGDL1iWGdgLAFXDT3qYsjPFL70eSBxwDLbeib3s1sIklQN/7RcSocwrcp9v9AJBiqPa4eF7fbu+Ce8urCd3MIb3DivnvdQi9328MgTgbglqvQ0y8cxXDAjfDdGq5WOe7E9y20WaPgld5ngADp9VW3jZ3GZSNhJNZdBhZ/JzC/QTMwlMQtb/LqCGR58R+B3KAlNporzQuJWYgNcb+f+Iu4JX4Ogc/PTwxCbgemsQcYV4pJyJW3tLCSm4WEJqYLizK1qFWrFDyIJ87AjWT3L8g/yvNEQt+9H2wJNJp5HsSIhU13yN4diSrEUhNMVye3+Ne07j0C+WUGb7m/duGbRzWwECisyAk9vtUyJ8Lr+ZPtA=----ATTACHMENT:----MTA0NTkzNDI2ODE3NjA5MSAzNzMxOTgyMzk2OTAzMDkgNzk0MDIxOTIxNzY2MTYz