/**
  *
  * @param ControllerManager $sl
  * @param Contentinum\Options\PageOptions $pageOptions
  * @param ContentinumComponents\Mapper\Worker $worker
  */
 protected function formFactory($sl, $pageOptions, $worker)
 {
     if (false !== ($formName = $pageOptions->getApp('form'))) {
         if (false !== ($targetEntities = $pageOptions->getApp('targetentities'))) {
             if (is_array($targetEntities) && !empty($targetEntities)) {
                 foreach ($targetEntities as $key => $tEntity) {
                     $worker->addTargetEntities($key, $tEntity);
                 }
             }
         }
         $formFactory = new $formName($worker);
         $decorators = $sl->get($pageOptions->getApp('formdecorators'));
         $decorators = $decorators->default->toArray();
         if (false != ($formAttribs = $pageOptions->getApp('formattributes'))) {
             $decorators['deco-form']['form-attributtes'] = array_merge($decorators['deco-form']['form-attributtes'], $formAttribs);
         }
         $formFactory->setDecorators($decorators);
         $formFactory->setServiceLocator($sl);
         return $formFactory;
     } else {
         return false;
     }
 }