コード例 #1
0
 public function testSampleActionTemplate()
 {
     $generator = new ActionGenerator();
     $generator->registerTemplate('SampleActionTemplate', new SampleActionTemplate());
     $runner = new ActionRunner(['generator' => $generator]);
     // $runner->registerAction('SampleActionTemplate', array('action_class' => 'SampleAction'));
     $runner->getGenerator()->generate('SampleActionTemplate', 'SampleAction', ['namespace' => 'FooBar', 'action_name' => 'CreateSample']);
 }
コード例 #2
0
 /**
  * @dataProvider failingArgumentProvider
  * @expectedException ActionKit\Exception\RequiredConfigKeyException
  */
 public function testTwigActionTemplateWithException($arguments)
 {
     $actionTemplate = new TwigActionTemplate();
     $generator = new ActionGenerator();
     $generator->registerTemplate('TwigActionTemplate', $actionTemplate);
     $runner = new ActionRunner();
     $actionTemplate->register($runner, 'TwigActionTemplate', $arguments);
     $generator->generate('TwigActionTemplate', 'FileApp\\Action\\FooAction', $arguments);
 }
コード例 #3
0
 public function execute($ns, $actionName)
 {
     $app = kernel()->app($ns) ?: kernel()->bundle($ns);
     if (!$app) {
         throw new Exception("{$ns} application or bundle not found.");
     }
     $dir = $app->locate();
     $className = $ns . '\\Action\\' . $actionName;
     $actionDir = $dir . DIRECTORY_SEPARATOR . 'Action';
     $classFile = $actionDir . DIRECTORY_SEPARATOR . $actionName . '.php';
     if (!file_exists($actionDir)) {
         mkdir($actionDir, 0755, true);
     }
     $relfilepath = substr($classFile, strlen(getcwd()) + 1);
     if (!file_exists($classFile)) {
         $gen = new ActionGenerator(array('cache' => true));
         $ret = $gen->generateActionClassCode($ns, $actionName);
         file_put_contents($classFile, "<?php\n" . $ret->code . "\n\n?>");
         $this->logger->info('create ' . $ret->action_class . ' => ' . $relfilepath, 1);
         $this->logger->info('done');
     } else {
         $this->logger->warn($relfilepath . ' class file exists.');
     }
 }
コード例 #4
0
 public function testWithoutRegister()
 {
     $generator = new ActionGenerator();
     $generator->registerTemplate('TwigActionTemplate', new TwigActionTemplate());
     $className = 'User\\Action\\BulkDeleteUser';
     $generatedAction = $generator->generate('TwigActionTemplate', $className, array('template' => '@ActionKit/RecordAction.html.twig', 'variables' => array('record_class' => 'User\\Model\\User', 'base_class' => 'ActionKit\\RecordAction\\CreateRecordAction')));
     $generatedAction->load();
     ok(class_exists($className));
 }