Ejemplo n.º 1
0
 public function register($kernel, $options = array())
 {
     if (isset($options['DefaultFieldView'])) {
         Action::$defaultFieldView = $options['DefaultFieldView'];
     }
     $container = new ServiceContainer();
     $generator = $container['generator'];
     $generator->registerTemplate('TwigActionTemplate', new TwigActionTemplate());
     $generator->registerTemplate('CodeGenActionTemplate', new CodeGenActionTemplate());
     $generator->registerTemplate('RecordActionTemplate', new RecordActionTemplate());
     $generator->registerTemplate('UpdateOrderingRecordActionTemplate', new UpdateOrderingRecordActionTemplate());
     $action = new ActionRunner($container);
     $action->registerAutoloader();
     $kernel->action = function () use($options, $action) {
         return $action;
     };
     $kernel->event->register('view.init', function ($view) use($action) {
         $view->args['Action'] = $action;
     });
     $kernel->event->register('phifty.before_path_dispatch', function () use($kernel) {
         if (!ActionRequest::hasAction($_REQUEST)) {
             return;
         }
         $runner = $kernel->action;
         // get runner
         $kernel->event->trigger('phifty.before_action');
         $strout = fopen("php://output", "w");
         // If we found any ajax action, exit the application
         if ($runner->handleWith($strout, $_REQUEST, $_FILES)) {
             exit(0);
         }
     });
 }
Ejemplo n.º 2
0
 public function register(Kernel $kernel, $options = array())
 {
     $kernel->actionService = function () use($kernel, $options) {
         $container = new ServiceContainer();
         $container['cache_dir'] = $kernel->cacheDir;
         if ($kernel->locale) {
             $container['locale'] = $kernel->locale->current;
         }
         if (isset($options['DefaultFieldView'])) {
             Action::$defaultFieldView = $options['DefaultFieldView'];
         }
         $generator = $container['generator'];
         $generator->registerTemplate('TwigActionTemplate', new TwigActionTemplate());
         $generator->registerTemplate('CodeGenActionTemplate', new CodeGenActionTemplate());
         $generator->registerTemplate('RecordActionTemplate', new RecordActionTemplate());
         $generator->registerTemplate('UpdateOrderingRecordActionTemplate', new UpdateOrderingRecordActionTemplate());
         return $container;
     };
     $kernel->actionRunner = function () use($kernel) {
         $actionRunner = new ActionRunner($kernel->actionService);
         $actionRunner->registerAutoloader();
         // $actionRunner->setDebug();
         return $actionRunner;
     };
     $kernel->action = function () use($kernel) {
         return $kernel->actionRunner;
     };
     $kernel->event->register('view.init', function ($view) use($kernel) {
         $view['Action'] = $kernel->actionRunner;
     });
     $kernel->event->register('phifty.before_path_dispatch', function () use($kernel) {
         if (!ActionRequest::hasAction($_REQUEST)) {
             return;
         }
         $runner = $kernel->action;
         // the new trigger for actions defined in Bundle::actions method
         $kernel->event->trigger('phifty.prepare_actions');
         $kernel->event->trigger('phifty.before_action');
         $strout = fopen('php://output', 'w');
         // If we found any ajax action, exit the application
         if ($runner->handleWith($strout, $_REQUEST, $_FILES)) {
             exit(0);
         }
     });
 }