function getAttributesFromTheme(string $themeName) { $theme = $this->getTheme($themeName); if (empty($theme)) { return null; } $xml = $this->getXmlFile($theme->path); if (empty($xml)) { return null; } return $this->extractAttributes($xml); } function caller() { $attributes = getAttributesFromTheme('mytheme'); } function getAttributesFromTheme() { return Pipe::make( $this->getXmlFile(...), $this->extractAttributes(...) )->stopIfEmpty(); } function caller() { $attributes = getAttributesFromTheme()->run(getTheme('mytheme')); }