代码之家  ›  专栏  ›  技术社区  ›  mythicalprogrammer

不需要Zend框架视图的短标记。是否有$view->setusestreamwrapper(true)的替代方案?

  •  2
  • mythicalprogrammer  · 技术社区  · 14 年前

    我正在学习Zend框架,这是我的第一个框架,我遇到了视图部分。为了将内容从控制器输出到视图,我必须使用短标签。因为XML,我不想这样做。到目前为止,唯一的选择是 $view->setUseStreamWrapper(true) 这显然会扼杀表演。我想知道是否有其他解决方案(除了 $view->setusestreamwrapper(真) )?

    提前谢谢。

    抱歉,这里有一个澄清:

    
    application/views/scripts/index/index.phtml
    
    `Escape($this->name);?> from Zend Framework
    
    
    

    而不是 <?= $this->Escape($this->name);?> ,我想用长标签 <?php= $this->转义($this->name);?&。但它似乎不起作用。Zend框架迫使我们使用短标签否?

    4 回复  |  直到 14 年前
        1
  •  1
  •   avpaderno    14 年前

    我不太清楚你在问什么,但是你不必使用短标签,你可以使用长标签。也可以不使用短标签 $view->setUseStreamWrapper(true) ,您只需在php.in i中打开短标记(您也可以在脚本中设置它,但我不确定),我相信 $view->setusestreamwrapper(真) 是预解析脚本并转换 <? 进入之内 <?php .
    至于性能下降,我的经验是,无论你做什么,ZF都很慢。似乎Zend的人在框架中放置了大量的东西,这些东西在框架中没有任何业务,似乎它只是一个试图做任何事情的巨大的野兽,所以最终做得很糟糕。可能就是我。

        2
  •  2
  •   opHASnoNAME    14 年前

    你可以使用

    <?php echo $this->escape($this->name); ?>
    

    或者,如果您想使用短标记,可以在.htaccess中的大多数服务器上设置它。

    php_value "short_open_tag" "on"
    
        3
  •  1
  •   Itay Moav -Malimovka    14 年前

    如果你是说 <? 那么,不,你没有 不得不 使用它们,你可以使用它们。只使用 <?php 相反。
    我不知道怎么办 $view->setUseStreamWrapper 与问题有关。

    <?=
    

    将转换为

    <?php echo
    
        4
  •  0
  •   Your Common Sense    14 年前

    我想使用长标记转义($this->name);?gt;

    这不是长标记,也不是有效标记。在PHP中没有这样的语法
    如果你想用长标签,你就得做。

    <?php echo  $this->Escape($this->name);?>