[英]Twig render empty page with slim framework
我正在使用带有超薄框架3的Twig模板引擎
我的控制器里面有一个简单的功能
public function test_twig($request, $response, $args) {
return $this->view->render($response, "login.phtml");
}
当我在locahost中运行此代码时,它工作得很好,但我在我的服务器中尝试它显示一个空页面,非常奇怪的行为页面没有动态变量它只是HTML
我也试过这个:
$str = $this->view->fetchFromString('<p>Hi, my name is {{ name }}.</p>', [
'name' => "oussama"
]);
$response->getBody()->write($str);
return $response;
它在localhost中工作,而不是在我的服务器中(我的服务器中有PHP 5.6 )
执行完后,我最终在这里编译函数无法编译一个简单的HTML文件!
/ ** *编译模板源代码。 * * @return string已编译的PHP源代码* * @throws Twig_Error_Syntax在令牌化,解析或编译时出现错误* /
public function compileSource(Twig_Source $source)
{
try {
return $this->compile($this->parse($this->tokenize($source)));
} catch (Twig_Error $e) {
$e->setSourceContext($source);
throw $e;
} catch (Exception $e) {
throw new Twig_Error_Syntax(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
}
}
我确实按照代码直到构造函数内的Twig_Lexer类完全在这一行:
'operator' => $this->getOperatorRegex(),
自版本v2.0.0起,Twig需要PHP 7.0或更高版本。 正如您所说,您在远程服务器上使用PHP 5.6,它们将不能一起工作。 您可以在远程(如果可能)上升级到PHP 7,或者将twigrade降级到v1.35.0,它仍然支持PHP 5。
资源:
Twig 2.4需要PHP 7及更高版本。 您的服务器不满足该要求,Twig失败。
我们需要通过设置自己的依赖来覆盖默认的Twig依赖关系。 在项目conposer.json文件中添加Twig依赖项:
"twig/twig":"^1.18"
告诉作曲家运行新配置并应用更改:
composer update
我只是通过更改我的composer来实现这一点.json要求:
"slim/twig-view": "2.0",
将版本更改为2.0,因为它适用于PHP 5.6
如果您使用版本“~5.1”,那么Eloquent也存在问题,它将无法正常工作我只是为数据库依赖项推出了严格版本“5.4.36”,如下所示:
"illuminate/database": "5.4.36"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.