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']); }
/** * @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); }
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.'); } }
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)); }