Попытка работать с Полным примером от Slim Framework + Doctrine. Я пытаюсь добавить Twig (slim / twig-view) к смеси.
Добавлен src / Providers / Twig
<?php
declare(strict_types=1);
namespace App\Provider;
use Pimple\{Container, ServiceProviderInterface};
use Slim\{Http\Environment, Http\Uri, Views\TwigExtension};
class Twig implements ServiceProviderInterface
{
public function register(Container $c)
{
$c[\Slim\Views\Twig::class] = function ($c) {
$view = new \Slim\Views\Twig(['settings']['view']['template_path'], ['settings']['view']
['twig']);
// Instantiate and add Slim specific extension
$router = $c('router');
$uri = Uri::createFromEnvironment(new Environment($_SERVER));
$view->addExtension(new TwigExtension($router, $uri));
return $view;
};
}
}
Добавлен src / Action / HomeAction
<?php
declare(strict_types=1);
namespace App\Action;
use Slim\{Http, Views\Twig};
class Home
{
private $view;
public function __construct(Twig $view)
{
$this->view = $view;
}
public function __invoke(Http\Request $request, Http\Response $response, $args)
{
$result = $this->view->render($response,'index.twig', $data);
return $response;
}
}
Добавлено это в src / Provider / Slim
$c[Home::class] = function (Container $c): Home {
return new Home($c[\Slim\Views\Twig::class]);
};
Я чувствую, что проблема здесь, но я все еще учусь этому.