我可以将刀片模板引擎(laravel)与 symfony 一起使用吗?

问题描述 投票:0回答:2

昨晚我正在从 symfony 的官方文档中学习 symfony,一切都工作正常,除非我觉得需要掌握 twig。 我在 Laravel 上工作了大约 6 - 8 个月,我真的很习惯它的环境,尤其是刀片引擎。问题是,我可以在 symphony 中使用 Blade 模板代替 twig 吗? 我尝试寻找它但找不到它。 预先感谢。

symfony templates laravel-5 twig laravel-blade
2个回答
3
投票

composer search blade
返回:

philo/laravel-blade Use the simple and yet powerful Laravel Blade templating engine as a standalone component.
duncan3dc/blade Use Laravel Blade templates without the full Laravel framework

看起来

philo/laravel-blade
有更多的维护者,至少根据 github 来看是这样。所以,应该是可以的。


0
投票

注意:在 symfony v7+ 和 PHP 8.1 上测试

是的,完全可以这样做,我建议您使用 BladeOne,因为它是当前且积极维护的之一

第1步:使用composer安装包

composer require eftec/bladeone

第2步:创建一个新服务`src/Service/Helpers.php

namespace App\Service;

Use eftec\bladeone\BladeOne;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class Helpers
{
    function __construct()
    {
        // nothing for now
    }

    function render($template, $data = [])
    {
        $views = __DIR__ . '/../../templates';
        $cache = __DIR__ . '/../../var/cache';
        $blade = new BladeOne($views, $cache, BladeOne::MODE_AUTO);
        echo $blade->run($template, $data);
    }

}

第3步:注册创建的服务

services:
    # previous code

    App\Service\Helpers:
        autowire: true

第 4 步:在控制器中使用它

namespace App\Controller;

use App\Service\Helpers;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class PublicController extends AbstractController
{
    # [Route('/', name: 'home')]
    public function index(Helpers $helpers): Response
    {
        $helpers->render('public.index', ['title' => 'Public Page']);
        return new Response();
    }
}

第 5 步:将控制器调用到你的路线

© www.soinside.com 2019 - 2024. All rights reserved.