extension twig sur slim

Par Michel Mve, il y a 8 ans


Bsr
Svp qulqu'un peut il m'aider à installer les extensions de twig sur slim?
C'est un petit site, mais matheureusement je suis nouveau sur twig et slim.
Merci,

5 réponses

Lartak, il y a 8 ans

Bonjour.

je suis nouveau sur twig et slim

Quand tout développeur est dans le même cas que toi, il fait en sorte de se documenter pour apprendre à utiliser une resource.
Tu trouveras ce que tu as besoin de savoir ici Slim » Template ainsi que sur le site de Twig Documentation » Twig for Developers.
Tu as également des tutoriels sur le site concernant Slim.
Ne t'attends pas à ce que quelqu'un te dise qu'il va t'aider comme tu le demandes, surtout gratuitement.
Que ton site soit petit ou non n'y change rien.

SimonDevelop, il y a 8 ans

Tu as des skeletons slim déjà tout fait sur github avec toute sorte de librairie, j'ai d'ailleurs fait les miens si jamais ça t'interresse.
Skeleton basic, Skeleton complet

betaWeb, il y a 8 ans

Salut,

Quel est le souci que tu rencontres exactement ?
As-tu le code incrimité à nous présenter ?

Michel Mve, il y a 8 ans

Mon souci est d'activé le lien de la page.
Voici ma page MesExtensions

<?php namespace App\Commander; /** * */ class MesExtensions extends \Slim\Views\TwigExtension { public function getFunctions() { return [ new Twig_SimpleFunction('activeClass', [$this, 'activeClass'], ['needs_context' => true]) ]; } public function activeClass(array $context, $page) { if (isset($context['current_page']) && $context['current_page'] === $page) { return ' active '; } } }
betaWeb, il y a 8 ans

Je vois. J'ai eu à faire un truc similaire de mon côté, et je suis passé par un middleware en fait. Tu récupères la route courante via la requête, puis tu ajoutes le nom de la route courante retournée aux variables globales de Twig. De cette façon, tu auras accès à la route courante dans tous tes templates Twig et tu pourras faire les traitements que tu veux.

Voici le middleware dans lequel je récupère et stocke la route courante, ça pourra peut-être t'aider (c'est rien de bien sorcier) :

namespace App\Middleware; use \Twig_Environment; use Slim\Http\Request; use Slim\Http\Response; class RouteMiddleware { protected $twig; public function __construct(Twig_Environment $twig) { $this->twig = $twig; } public function __invoke(Request $request, Response $response, $next) { $route = $request->getAttribute('route'); if (!is_null($route)) { $this->twig->addGlobal('current_route', $route->getName()); } return $next($request, $response); } }