Example #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);
         }
     });
 }
 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);
         }
     });
 }
Example #3
0
 public function runWithRequest(ActionRequest $request)
 {
     if (!$request->getActionName()) {
         throw new InvalidActionNameException("");
     }
     if (!Utils::validateActionName($request->getActionName())) {
         throw new InvalidActionNameException("Invalid action name: " . $request->getActionName() . ".");
     }
     return $this->run($request->getActionName(), $request->getArguments(), $request);
 }
 public function testInvalidActionName()
 {
     $request = new ActionRequest(array('__action' => 'bb_fjeijfe', '__ajax_request' => true, 'account' => '*****@*****.**', 'password' => md5('qwer1234')));
     $this->assertEquals(1, $request->isInvalidActionName());
 }