container->appConfig; $name = ucfirst($name); $defaultConfig = [ 'name' => $name, 'template_path' => $appConfig->get("views.$name.config.template_path"), 'layout' => $appConfig->get("views.$name.config.layout"), // You can pass something like .php => Class1, .foo.bar => Class 2 'viewEngineMap' => $appConfig->get("views.$name.config.viewEngineMap"), ]; $config = array_merge($defaultConfig, $config); $className = $this->container->getNamespacePrefix($this->getSection()) . 'View\\DataView\\Default' . ucfirst($viewType); if (!class_exists($className, true)) { $className = '\\FOF30\\View\\DataView\\' . ucfirst($viewType); } if (!class_exists($className, true)) { $className = $this->container->getNamespacePrefix($this->getSection()) . 'View\\DataView\\DefaultHtml'; } if (!class_exists($className)) { $className = '\\FOF30\\View\\DataView\\Html'; } $view = new $className($this->container, $config); return $view; } }