protected function configure()
 {
     parent::configure();
     $this->setName('doctrine.orm.list')->addOption('entityManagerName', null)->setOption('filterQueryClosure', function (QueryBuilder $query, array $filterQueryCallbacks, $action, $container) {
         foreach ($filterQueryCallbacks as $callback) {
             call_user_func($callback, $query, $container);
         }
     })->setOption('createDataClosure', function (array $createDataCallbacks, $action, $container) {
         $dataClass = $action->getDataClass();
         $data = new $dataClass();
         foreach ($createDataCallbacks as $callback) {
             call_user_func($callback, $data, $container);
         }
         return $data;
     })->setOption('findDataByIdClosure', function ($id, array $findDataByIdCallbacks, $action, $container) {
         $em = $container->get('doctrine')->getEntityManager($action->getOption('entityManagerName'));
         $data = $em->getRepository($action->getDataClass())->find($id);
         foreach ($findDataByIdCallbacks as $callback) {
             if ($data) {
                 $data = call_user_func($callback, $data, $em, $container);
             }
         }
         return $data;
     })->setOption('saveDataClosure', function ($data, $action, $container) {
         $em = $container->get('doctrine')->getEntityManager($action->getOption('entityManagerName'));
         $em->persist($data);
         $em->flush();
     })->setOption('deleteDataClosure', function ($data, $action, $container) {
         $em = $container->get('doctrine')->getEntityManager($action->getOption('entityManagerName'));
         $em->remove($data);
         $em->flush();
     });
 }
 public function configureActionsVars(ParameterBag $actionsVars)
 {
     parent::configureActionsVars($actionsVars);
     $dataClass = $this->getDataClass();
     $actionsVars->set('createData', function () use($dataClass) {
         return new $dataClass();
     });
     $actionsVars->set('findDataById', function ($id) use($dataClass) {
         return $dataClass::getRepository()->findOneById($id);
     });
     $actionsVars->set('saveData', function ($data) {
         $data->save();
     });
     $actionsVars->set('deleteData', function ($data) {
         $data->delete();
     });
 }
    protected function configure()
    {
        parent::configure();

        $this
            ->setName('propel.list')

            ->setOption('filterQueryClosure', function (\ModelCriteria $query, array $filterQueryCallbacks, $action, $container) {
                foreach ($filterQueryCallbacks as $callback) {
                    call_user_func($callback, $query, $container);
                }
            })

            ->setOption('createDataClosure', function (array $createDataCallbacks, $action, $container) {
                $dataClass = $action->getDataClass();

                $data = new $dataClass();
                 foreach ($createDataCallbacks as $callback) {
                    call_user_func($callback, $data, $container);
                }

                return $data;
            })

            ->setOption('findDataByIdClosure', function ($id, array $findDataByIdCallbacks, $action, $container) {
                $queryClass = $action->getDataClass().'Query';

                $data = $queryClass::create()->findPk($id);
                foreach ($findDataByIdCallbacks as $callback) {
                    if ($data) {
                        $data = call_user_func($callback, $data, $container);
                    }
                }

                return $data;
            })

            ->setOption('saveDataClosure', function ($data, $action, $container) {
                $data->save();
            })

            ->setOption('deleteDataClosure', function ($data, $action, $container) {
                $data->delete();
            })
        ;
    }
    protected function configure()
    {
        parent::configure();

        $this
            ->setName('mandango.list')

            ->setOption('filterQueryClosure', function (Query $query, array $filterQueryCallbacks, $action, $container) {
                foreach ($filterQueryCallbacks as $callback) {
                    call_user_func($callback, $query, $container);
                }
            })

            ->setOption('createDataClosure', function (array $createDataCallbacks, $action, $container) {
                $data = $container->get('mandango')->create($action->getDataClass());
                foreach ($createDataCallbacks as $callback) {
                    call_user_func($callback, $data, $container);
                }

                return $data;
            })

            ->setOption('findDataByIdClosure', function ($id, array $findDataByIdCallbacks, $action, $container) {
                $data = $container->get('mandango')->getRepository($action->getDataClass())->findOneById($id);
                foreach ($findDataByIdCallbacks as $callback) {
                    if ($data) {
                        $data = call_user_func($callback, $data, $container);
                    }
                }

                return $data;
            })

            ->setOption('saveDataClosure', function ($data, $action, $container) {
                $data->save();
            })

            ->setOption('deleteDataClosure', function ($data, $action, $container) {
                $data->delete();
            })
        ;
    }
 public function configureActionsVars(ParameterBag $actionsVars)
 {
     parent::configureActionsVars($actionsVars);
     $dataClass = $this->getDataClass();
     $em = $this->get('doctrine.orm.entity_manager');
     $actionsVars->set('createData', function () use($dataClass) {
         return new $dataClass();
     });
     $actionsVars->set('findDataById', function ($id) use($em, $dataClass) {
         return $em->getRepository($dataClass)->find($id);
     });
     $actionsVars->set('saveData', function ($data) use($em) {
         $em->persist($data);
         $em->flush();
     });
     $actionsVars->set('deleteData', function ($data) use($em) {
         $em->remove($data);
         $em->flush();
     });
 }