使用symfony2和twig创建文件文本

时间:2013-04-25 15:15:43

标签: php file symfony text twig

我想使用twig从symfony2控制器生成文件文本。

与普通的html模板一样,但使用纯文本,并将文件保存在某处。

有可能吗?

2 个答案:

答案 0 :(得分:5)

终于明白了。

我想生成bash脚本。

  1. 在正确的位置创建模板,例如

    myBundle/Resources/views/MyController/mytemplate.sh.twig
    
  2. 在ScriptGenerator类中

    // Load the template
    $template = $this->twig->loadTemplate('myBundle:MyController:mytemplate.sh.twig');
    // Render the whole template
    $script = $template->render($parameters);
    
  3. 您想要使用它,请放置此代码。

    namespace myproject\myBundle\Controller;
    
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    
    use myproject\myBundle\Generator\ScriptGenerator;
    
    class myController extends Controller
    {
        public function myAction()
        {
            $twig = $this->get('twig');
            $generator = new ScriptGenerator($twig);
            $parameters = array(
                'a parameter' => "whatever"
            );
            $script = $generator->setScript($parameters);
    
            file_put_contents('whereyouwant',$script);
    
            ...
        }
    }
    

答案 1 :(得分:2)

是的,这可以做到。您必须在路径定义(.txt)中添加正确的格式

您还需要设置正确的Content-Type标题

   $response->headers->set('Content-Type', 'text/plain');

事实上,Response object通常填充HTML代码,但它也可以包含纯文本(带有text-plain的Content-Type标题),图像或其他格式。

您还应该在模板名称上添加正确的格式

XXXYourBundle:XXXX:temlate_name.txt.twig // In case you're using Twig as a templating Engine