Prosty sposób na ładowanie plików. Jeden z często przydatnych rozwiązań, pozwala ładować pojedyncze pliki określające konfiguracje danego modułu. W przykładowej wersji aplikacji znajduje sie Config/router.php oraz Config/View/smarty.php
return [
'setTemplateDir' => APP_DIR . 'View/templates', // Default './View/templates'
'setCompileDir' => APP_DIR . 'View/templates_c', // Default './View/templates_c'
'addPluginsDir' => '', // Default template dir ./Libs/Plugins/smarty
'debugging' => false, // Default False
'fileExtension' => '.html.php' // Default '.html.php'
];
W praktyce jest używany do wielu podstawowych rzeczy od pobrania danych. W przykładowej aplikacji została wykorzystana ta klasa do pobrania "setTemplateDir" w przeciwnym wypadku gdyby nie było ustalonej wartości ma załadować nam ścieszkę podaną jako drugi parametr.
<?php
namespace Controller;
use Dframe\Config;
use Dframe\Controller;
use Dframe\Router\Response;
class PageController extends Controller
{
/**
* Initial function call
*/
public function init()
{
}
/**
* Catch-all method for requests that can't be matched.
*
* @param string $method
* @param array $parameters
*
* @return Response
*/
public function __call($method, $test)
{
$smartyConfig = Config::load('view/smarty');
$view = $this->loadView('Index');
$patchController = $smartyConfig->get('setTemplateDir', APP_DIR . 'View/templates') . '/page/' . htmlspecialchars($_GET['action']) . $smartyConfig->get('fileExtension', '.html.php');
if (!file_exists($patchController)) {
return $this->router->redirect('page/index');
}
return Response::create($view->fetch('page/' . htmlspecialchars($_GET['action'])));
}
}
Edit page (Config/overview)