我正在使用 Zend Framework 2 做一些工作,这里我需要清理用户的输入,这是在Html中。我之前在普通 php 中使用过 php tidy extension [see this],没有使用命名空间和自动加载,而且代码运行良好。
而这一次,我在 zf2 中写了一个视图助手,就像:
<?php
namespace Blog\View\Helper;
use Zend\View\Helper\AbstractHelper;
class TidyHtml extends AbstractHelper
{
public function __invoke($userHtml){
$config = array(
'indent' => true,
'output-xhtml' => true,
'wrap' => 200);
$userHtml = '<div id="wrapper">'.$userHtml.'</div>';
$tidy = new tidy();
$tidy->parseString($userHtml,$config,'utf8');
$tidy->cleanRepair();
$dom = new DOMDocument();
$dom->loadHTML($tidy);
$node = $dom->getElementsById("wrapper");
$newdoc = new DOMDocument();
$cloned = $node->item(0)->cloneNode(TRUE);
$newdoc->appendChild($newdoc->importNode($cloned,TRUE));
return $newdoc->saveHTML();
}
}
我想在第 14 行创建一个 tidy 实例,但出现错误:
PHP Fatal error: Class 'Blog\\View\\Helper\\tidy' not found in /var/www/zf2-tutorial
/module/Blog/src/Blog/View/Helper/TidyHtml.php on line 14
显然 php 将 tidy 视为一些用户定义的类并且找不到它的声明。也许zf2中的自动加载功能对其有一些影响。而且我确定 tidy2.0 扩展程序已正确安装在我的机器上。