name = $name; } /** * @param WithKeyword $component * @param array $options * * @return string */ public static function build($component, array $options = []) { if (! $component instanceof WithKeyword) { throw new RuntimeException('Can not build a component that is not a WithKeyword'); } if (! isset($component->statement)) { throw new RuntimeException('No statement inside WITH'); } $str = $component->name; if ($component->columns) { $str .= ArrayObj::build($component->columns); } $str .= ' AS ('; foreach ($component->statement->statements as $statement) { $str .= $statement->build(); } $str .= ')'; return $str; } }