![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/codeception/codeception/src/Codeception/Lib/Generator/ |
<?php declare(strict_types=1); namespace Codeception\Lib\Generator; use Codeception\Exception\ConfigurationException; use Codeception\Lib\Generator\Shared\Classname; use Codeception\Util\Shared\Namespaces; use Codeception\Util\Template; class StepObject { use Namespaces; use Classname; protected string $template = <<<EOF <?php declare(strict_types=1); namespace {{namespace}}; class {{name}} extends {{actorClass}} { {{actions}} } EOF; protected string $actionTemplate = <<<EOF public function {{action}}() { \$I = \$this; } EOF; protected string $name; protected string $actions = ''; public string $namespace; public function __construct(protected array $settings, string $name) { $this->name = $this->getShortClassName($name); $this->namespace = $this->getNamespaceString($this->supportNamespace() . 'Step\\' . $name); } public function produce(): string { $actor = $this->settings['actor']; if (!$actor) { throw new ConfigurationException("Steps can't be created for suite without an actor"); } $extended = '\\' . ltrim($this->supportNamespace() . $actor, '\\'); return (new Template($this->template)) ->place('namespace', $this->namespace) ->place('name', $this->name) ->place('actorClass', $extended) ->place('actions', $this->actions) ->produce(); } public function createAction($action): void { $this->actions .= (new Template($this->actionTemplate)) ->place('action', $action) ->produce(); } }