how to add twig-view in slimframework v4(如何在SlimFrameworkv4中添加小枝视图)
本文介绍了如何在SlimFrameworkv4中添加小枝视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在SLIM v4中添加细枝视图
在SILM v3中,我们在容器中添加了小枝视图
$container['view'] = function ($c) {
$view = new SlimViewsTwig('path/to/templates', [
'cache' => 'path/to/cache'
]);
// Instantiate and add Slim specific extension
$router = $c->get('router');
$uri = SlimHttpUri::createFromEnvironment(new SlimHttpEnvironment($_SERVER));
$view->addExtension(new SlimViewsTwigExtension($router, $uri));
return $view;
};
但我不能在SLIM v4中添加那样的小枝
推荐答案
<>更新:Twig-View已达到稳定版本,文档已更新以解决Slim 4集成问题。
如果您仍在使用不稳定版本的Twig-View,请考虑升级。
首先,您需要将Twig-View包添加到项目中:
composer require slim/twig-view
并假定目录结构如下:
composer.json
cache/
public/
|--index.php
templates/
|--hello.twig
vendor/
|--autoload.php
以下是两个工作示例:
如果您使用容器(根据Slim 4 docs是可选的),您可以将Tiwg创建定义添加到容器中,并在需要时使用它。(我在本例中使用的是php-di/php-di
,但您可以使用任何与PSR兼容的依赖项容器。)
index.php,使用容器:
<?php
use DIContainer;
use SlimFactoryAppFactory;
use SlimViewsTwig;
use SlimViewsTwigMiddleware;
require __DIR__ . '/../vendor/autoload.php';
// Create Container
$container = new Container();
AppFactory::setContainer($container);
// Set view in Container
$container->set('view', function() {
return Twig::create(__DIR__ . '/../templates',
['cache' => __DIR__ . '/../cache']);
});
// Create App
$app = AppFactory::create();
// Add Twig-View Middleware
$app->add(TwigMiddleware::createFromContainer($app));
// Example route
$app->get('/hello/{name}', function ($request, $response, $args) {
return $this->get('view')->render($response, 'hello.twig', [
'name' => $args['name']
]);
});
// Run the app
$app->run();
您也可以跳过容器创建,但在这种情况下,您需要在尝试呈现模板之前创建Twig实例。
index.php,不带容器:
<?php
use SlimFactoryAppFactory;
use SlimViewsTwig;
use SlimViewsTwigMiddleware;
require __DIR__ . '/../vendor/autoload.php';
// Create App
$app = AppFactory::create();
// Create Twig
$twig = Twig::create(__DIR__ . '/../templates',
['cache' => __DIR__ . '/../cache']);
// Add Twig-View Middleware
$app->add(TwigMiddleware::create($app, $twig));
// Example route
// Please note how $view is created from the request
$app->get('/hello/{name}', function ($request, $response, $args) {
$view = Twig::fromRequest($request);
return $view->render($response, 'hello.twig', [
'name' => $args['name']
]);
});
// Run the app
$app->run();
hello.twig:
Hello {{ name }}
现在尝试在您的浏览器中访问/hello/slim4
,输出将是:
Hello Slim4
这篇关于如何在SlimFrameworkv4中添加小枝视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在SlimFrameworkv4中添加小枝视图
基础教程推荐
猜你喜欢
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01