{{actor}} = \$I; } EOF; protected $actions = ''; protected $settings; protected $name; protected $namespace; public function __construct($settings, $name) { $this->settings = $settings; $this->name = $this->getShortClassName($name); $this->namespace = $this->getNamespaceString($this->settings['namespace'] . '\\Page\\' . $name); } public function produce() { return (new Template($this->template)) ->place('namespace', $this->namespace) ->place('actions', $this->produceActions()) ->place('class', $this->name) ->produce(); } protected function produceActions() { if (!isset($this->settings['actor'])) { return ''; // global pageobject } $actor = lcfirst($this->settings['actor']); $actorClass = $this->settings['actor']; if (!empty($this->settings['namespace'])) { $actorClass = rtrim($this->settings['namespace'], '\\') . '\\' . $actorClass; } return (new Template($this->actionsTemplate)) ->place('actorClass', $actorClass) ->place('actor', $actor) ->place('pageObject', $this->name) ->produce(); } }