<?php
// Own namespace
-namespace CoreFramework\Template\Engine;
+namespace Org\Mxchange\CoreFramework\Template\Engine;
// Import framework stuff
-use CoreFramework\Factory\ObjectFactory;
-use CoreFramework\Parser\Xml\XmlParser;
-use CoreFramework\Registry\Registry;
-use CoreFramework\Template\CompileableTemplate;
+use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
+use Org\Mxchange\CoreFramework\Filesystem\InvalidDirectoryException;
+use Org\Mxchange\CoreFramework\Menu\RenderableMenu;
+use Org\Mxchange\CoreFramework\Parser\Xml\XmlParser;
+use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
+use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
+use Org\Mxchange\CoreFramework\Template\Engine\BaseTemplateEngine;
// Import SPL stuff
+use \SplFileInfo;
use \UnexpectedValueException;
/**
* @param $menuInstance A RenderableMenu instance
* @return $templateInstance An instance of TemplateEngine
* @throws UnexpectedValueException If the found $templateBasePath is empty or not a string
- * @throws BasePathIsNoDirectoryException If $templateBasePath is no
- * directory or not found
+ * @throws InvalidDirectoryException If $templateBasePath is no directory or not found
* @throws BasePathReadProtectedException If $templateBasePath is
* read-protected
*/
$templateInstance = new MenuTemplateEngine();
// Get the application instance from registry
- $applicationInstance = Registry::getRegistry()->getInstance('app');
+ $applicationInstance = GenericRegistry::getRegistry()->getInstance('application');
// Determine base path
- $templateBasePath = $templateInstance->getConfigInstance()->getConfigEntry('application_base_path') . $applicationInstance->getRequestInstance()->getRequestElement('app') . '/';
+ $templateBasePath = $templateInstance->getConfigInstance()->getConfigEntry('application_base_path') . $applicationInstance->getAppShortName(). '/';
// Is the base path valid?
if (empty($templateBasePath)) {
throw new UnexpectedValueException(sprintf('[%s:%d] %s is not a string with a base path.', $templateInstance->__toString(), __LINE__, $templateBasePath), self::EXCEPTION_INVALID_STRING);
} elseif (!is_dir($templateBasePath)) {
// Is not a path
- throw new BasePathIsNoDirectoryException(array($templateInstance, $templateBasePath), self::EXCEPTION_INVALID_PATH_NAME);
+ throw new InvalidDirectoryException(array($templateInstance, $templateBasePath), self::EXCEPTION_INVALID_PATH_NAME);
} elseif (!is_readable($templateBasePath)) {
// Is not readable
throw new BasePathReadProtectedException(array($templateInstance, $templateBasePath), self::EXCEPTION_READ_PROTECED_PATH);
$templateInstance->setCodeTemplateExtension($templateInstance->getConfigInstance()->getConfigEntry('menu_template_extension'));
// Absolute output path for compiled templates
- $templateInstance->setCompileOutputPath($templateInstance->getConfigInstance()->getConfigEntry('base_path') . $templateInstance->getConfigInstance()->getConfigEntry('compile_output_path'));
+ $templateInstance->setCompileOutputPath(sprintf('%s%s/',
+ $templateBasePath,
+ $templateInstance->getConfigInstance()->getConfigEntry('compile_output_path')
+ ));
// Set the menu instance
$templateInstance->setMenuInstance($menuInstance);
*/
private function initMenu ($templateDependency = '') {
// Get web template engine
- $this->setTemplateInstance(ObjectFactory::createObjectByConfiguredName('html_template_class', array($this->getApplicationInstance())));
+ $this->setTemplateInstance(ObjectFactory::createObjectByConfiguredName('html_template_class', array(GenericRegistry::getRegistry()->getInstance('application'))));
// Handle the dependency template
$this->handleTemplateDependency('menu', $templateDependency);
}
/**
- * Getter for menu cache file (FQFN)
+ * Getter for menu cache file instance
*
- * @return $fqfn Full-qualified file name of the menu cache
+ * @return $fileInstance Full-qualified file name of the menu cache
*/
- public function getMenuCacheFqfn () {
- // Get the FQFN ready
- $fqfn = sprintf('%s%s%s/%s.%s',
- $this->getConfigInstance()->getConfigEntry('base_path'),
- $this->getGenericBasePath(),
- 'menus/_cache',
+ public function getMenuCacheFile () {
+ // Get the application instance from registry
+ $applicationInstance = GenericRegistry::getRegistry()->getInstance('application');
+
+ // Get the file instance ready
+ $fileInstance = new SplFileInfo(sprintf('%s%smenus/_cache/%s.%s',
+ $this->getConfigInstance()->getConfigEntry('application_base_path'),
+ $applicationInstance->getAppShortName(),
md5(
$this->getMenuInstance()->getMenuName() . ':' .
$this->__toString() . ':' .
$this->getMenuInstance()->__toString()
),
$this->getMenuInstance()->getMenuType()
- );
+ ));
// Return it
- return $fqfn;
+ return $fileInstance;
}
}