public function build()
{
$container = $this->builder->getContainer();
$view = ucfirst($container->inflector->pluralize($this->viewName));
$fullPath = $container->getNamespacePrefix($this->getSection()) . 'View\\' . $view . '\\' . ucfirst($this->viewType);
// Let's remove the last part and use it to create the class name
$parts = explode('\\', trim($fullPath, '\\'));
$className = array_pop($parts);
// Now glue everything together
$namespace = implode('\\', $parts);
// Let's be sure that the parent class extends with a backslash
$baseClass = '\\' . trim(get_class($this->view), '\\');
$code = '<?php' . PHP_EOL;
$code .= PHP_EOL;
$code .= 'namespace ' . $namespace . ';' . PHP_EOL;
$code .= PHP_EOL;
$code .= "defined('_JEXEC') or die;" . PHP_EOL;
$code .= PHP_EOL;
$code .= 'class ' . $className . ' extends ' . $baseClass . PHP_EOL;
$code .= '{' . PHP_EOL;
$code .= PHP_EOL;
$code .= '}' . PHP_EOL;
$path = $container->backEndPath;
if (in_array('Site', $parts)) {
$path = $container->frontEndPath;
}
$path .= '/View/' . $view . '/' . $className . '.php';
$filesystem = $container->filesystem;
$filesystem->fileWrite($path, $code);
return $path;
}