protected function genArrayOfComponentFiles($componentName)
 {
     $files = array();
     $logicComponentNamespace = rtrim($this->config->getParsed('logic_comp_ns'), "\\");
     $className = SFComponent::getClassName($componentName);
     $componentDir = $this->config->getParsed('logic_components_dir');
     $files[$componentDir . $componentName . '/' . $componentName . '.php'] = "namespace {$logicComponentNamespace};\n\nuse Framework\\Core\\FrameworkClasses\\Components\\LogicComponent;\n\nclass {$className} extends LogicComponent\n{\n    public function init()\n    {\n    }\n}\n";
     $files[$componentDir . $componentName . '/config/' . $componentName . '_config.php'] = "";
     return $files;
 }
 protected function genArrayOfComponentFiles($componentName)
 {
     $outputComponentDirectory = $this->componentDirectory;
     $outputComponentTemplateDirectory = $this->outputComponentTemplateDirectory;
     $languages = $this->config->get('available_langs');
     $className = SFComponent::getClassName($componentName);
     $files = array();
     $files[$outputComponentDirectory . "{$componentName}/{$componentName}.php"] = "namespace Components\\Output;\n\nuse Framework\\Core\\FrameworkClasses\\Components\\OutputComponent;\n\nclass {$className} extends OutputComponent\n{\n    protected function execute()\n    {\n    }\n}";
     $files[$outputComponentDirectory . "{$componentName}/config/{$componentName}_config.php"] = "";
     foreach ($languages as $language) {
         $files[$outputComponentDirectory . "{$componentName}/lang/{$language}/{$language}.php"] = "";
     }
     $files[$outputComponentTemplateDirectory . "{$componentName}/{$componentName}.tpl"] = "This is component \"{$componentName}\". Hello!";
     $files[$outputComponentTemplateDirectory . "{$componentName}/css/{$componentName}.css"] = "";
     $files[$outputComponentTemplateDirectory . "{$componentName}/js/{$componentName}.js"] = "";
     return $files;
 }
 /**
  * OutputComponent constructor.
  *
  * @param string $name Component name.
  * @param Config|null $config Config object.
  * @param Language|null $langObj Language object.
  * @param LogicComponent[] $logicComponents Logic component on which this component depends on.
  * @param ISF $sf Simple Framework instasnce.
  */
 public function __construct($name, Config $config = null, Language $langObj = null, array $logicComponents, ISF $sf)
 {
     parent::__construct($name, $config, $logicComponents, $sf);
     $this->langObj = $langObj;
 }
 /**
  * Loads logic component, by passed component name.
  *
  * @param string $logicToLoad Logic component name to load.
  * @param LogicComponent[] $logicComponentDependencies Logic components that current logic component depends on.
  * @return LogicComponent Loaded logic component object.
  * @throws Exception If loaded component does not extends the LogicComponent class.
  */
 public function loadLogicComponent($logicToLoad, array $logicComponentDependencies)
 {
     $logicCompDir = $this->logicCompDir . $logicToLoad . '/';
     $logicCompConfigDir = $logicCompDir . 'config/';
     $this->logger->logDebug("Loading Logic component \"{$logicToLoad}\"");
     /** @noinspection PhpIncludeInspection */
     require_once $logicCompDir . $logicToLoad . '.php';
     $configObj = $this->loadComponentConfig($logicCompConfigDir, $logicToLoad);
     $className = $this->logicComponentNamespace . SFComponent::getClassName($logicToLoad);
     $logicComponentObj = new $className($logicToLoad, $configObj, $this->dbFactory, $logicComponentDependencies, $this->sf);
     if (!$logicComponentObj instanceof LogicComponent) {
         throw new Exception("Component \"{$logicToLoad}\" is not an instance of LogicComponent.");
     }
     $logicComponentObj->init();
     $this->loadedLogicComponents[$logicToLoad] = $logicComponentObj;
     return $logicComponentObj;
 }
 /**
  * LogicComponent constructor.
  *
  * @param string $name Name of the component.
  * @param Config|null $config Config object.
  * @param IDbFactory|null $db Database factory object.
  * @param LogicComponent[] $logicComponents Logic component that this component depends on.
  * @param ISF $sf Simple Framework instance.
  */
 public function __construct($name, Config $config = null, IDbFactory $db = null, array $logicComponents = array(), ISF $sf)
 {
     parent::__construct($name, $config, $logicComponents, $sf);
     $this->dbFactory = $db;
 }