我即将转换网站以使用Slim Framework和Smarty模板引擎。 在当前站点上,我已经分配了一些默认的smarty vars,但我不确定如何使用Slim框架设置它们,因此它们只设置一次。
现在就是这样:
$smarty->assign("fid", $user_profile["id"]);
$smarty->assign("fid_name", $user_profile["name"]);
$smarty->assign("fid_email", $user_profile["email"]);
$smarty->assign('postzip', $users->find_zip_or_post_new($user_profile["id"]));
$smarty->assign('userzip', $users->find_my_zip_code($user_profile["id"]));
$smarty->assign('url', $url);
$smarty->assign('catlist', $adverts->getcategories());
这是我的未来index.php
/***
* This is the script that will generate the complete site
*/
include_once("includes/classes/class.config.php"); //Configuration file
/*
* Include the Slim framework
*/
require 'libs/Slim/Slim.php';
\Slim\Slim::registerAutoloader();
use Slim\Slim;
/*
* Include the Smarty template view
*/
require 'libs/Slim/Extras/Views/Smarty.php';
/*
* Set new Slim object
*/
$app = new Slim(array(
'view' => new \Slim\Extras\Views\SmartyView(),
'debug' => true,
'log.enable' => true,
'log.path' => 'logs/',
'log.level' => 4,
'mode' => 'development'
));
//Ad view
$app->get('/', function() use ($app) {
$adverts = new Adverts();
$view = $app->view();
$app->render(
'index.tpl',
array(
'adverts' => $adverts->listadverts()
)
);
});
$app->run();
我应该在SmartyView渲染功能中设置它们
public function render($template) {
$instance = self::getInstance();
$instance->assign($this->data);
return $instance->fetch($template);
}
答案 0 :(得分:1)
使用
修正了它$app->hook('slim.before.dispatch', function () use ($app) {
});