在没有TwigBridge的Laravel 5中使用Twig?

时间:2015-05-17 18:49:17

标签: laravel twig

我正在使用Laravel创建CMS。我想在"页面模板中使用Twig标记" - 可由用户编辑并存储在数据库中。 CMS 应用程序仍将使用Blade。

我不想使用TwigBridge,因为根据我的理解,它会迫使我使用Twig。例如,在TwigBridge文档中指出:

  

您可以像调整任何其他视图一样调用Twig模板:

     

//没有文件扩展名

     

查看::制作(' i_am_twig',[...])

相反,我希望我的观点继续使用刀片模板,但使用Twig解析用户可编辑的页面模板。也许它看起来像这样:

Twig::make('i_am_twig', [...])

这可能吗?分步说明将受到高度赞赏!

据我所知,有些人可能会建议我只选择一个使用刀片模板或树枝模板来处理所有内容。但请,请不要在这里进行辩论。

1 个答案:

答案 0 :(得分:0)

这并不完美,但我会将其作为占位符发布,直到找到更好的答案。我还不太熟悉Laravel套餐,否则我会选择那条路线。我是这样做的:

第1步:在composer.json ..

将“twig / twig”:“~1.0”添加到require部分:

"require": {
    "laravel/framework": "5.0.*",
    "twig/twig": "~1.0"            <=========== add this
},

还有Autoload部分:

"autoload": {
    "classmap": [
        "database",
        "app/Models",
        "app",
        "database/seeds",
        "vendor/twig/twig/lib/Twig/Autoloader.php"   <==== add this             
    ],

第2步:更新编曲:

> sudo composer update
> composer dump-autoload

第3步:创建以下文件夹/文件:/resources/views/twig/hello.html

Well hello everyone!

第4步:渲染模板:

    \Twig_Autoloader::register();

    $loader = new \Twig_Loader_Filesystem(app_path() . '/../resources/views/twig');
    $twig = new \Twig_Environment($loader);

    echo $twig->render('hello.html', array('debug' => true));