За последние 24 часа нас посетили 20813 программистов и 1132 робота. Сейчас ищут 362 программиста ...

Подключение twig на фреимворк Slim

Тема в разделе "PHP для новичков", создана пользователем Artur_hopf, 9 июл 2020.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Добрый день. Может кто подключал и подскажет
    Ставлю вот это вот
    http://www.slimframework.com/docs/v3/features/templates.html

    но пытаюсь сделать не все в кучу как в инструкции. А по базовой версии slim-skeleton.
    Смотрю как там подключен класс users, и делаю похожим образом.
    фаил dependencies.php, сократил для удобство только подключение twig

    PHP:
    1. <?php
    2. declare(strict_types=1);
    3.  
    4. use DI\ContainerBuilder;
    5. use Psr\Container\ContainerInterface;
    6.  
    7. use Slim\Views\Twig;
    8. use Twig\Loader\FilesystemLoader;
    9.  
    10. return function (ContainerBuilder $containerBuilder) {
    11.     $containerBuilder->addDefinitions([
    12.         Twig::class => function (ContainerInterface $c) {
    13.             $settings       = $c->get('settings');
    14.             $twigSettings   = $settings['twig'];
    15.  
    16.             $loader = new FilesystemLoader(
    17.                 $twigSettings['path_templates']
    18.             );
    19.             $options = [
    20.                 'cache' => $twigSettings['path_cache']
    21.             ];
    22.  
    23.             $view = new Twig(
    24.                 $loader,
    25.                 $options
    26.             );
    27.  
    28.             return $view;
    29.         },
    30.     ]);
    31. };
    ругается на :
    directory does not exist (\"D:\\OSPanel\\domains\\localhost\\app\/..\/templates\")

    Подскажите куда рыть, \я так понимаю ручками же ничего создавать не надо.
    пробовал подменить так, но толку нет
    PHP:
    1. $loader = new FilesystemLoader(
    2.                 //$twigSettings['path_templates']
    3.                 'path/to/templates'
    4.             );
    5.             $options = [
    6.                 //'cache' => $twigSettings['path_cache']
    7.                 'cache' => 'path/to/cache'
    8.             ];
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    В общем нашел концы, создавать все таки эту папку нужно было в ручную. И указывать путь в setting.php
    PHP:
    1. <?php
    2. declare(strict_types=1);
    3.  
    4. use DI\ContainerBuilder;
    5. use Monolog\Logger;
    6.  
    7. return function (ContainerBuilder $containerBuilder) {
    8.     // Global Settings Object
    9.     $containerBuilder->addDefinitions([
    10.             'twig' => [
    11.                 'path_templates' => dirname(__DIR__) . '/templates',
    12.                 'path_cache' => false
    13.             ],
    14.         ],
    15.     ]);
    16. };
     
    AlexProg нравится это.