Как минимизировать вывод HTML в Zend Framework 1.12

Согласно процессу, упомянутому здесь https://www.tkcodez.info/minify-html-output-via-php-code/. Я попытался внедрить один скрипт в один из моих файлов макета, как это:

// Layout.phtml

<?php
function sanitize_output($buffer) {
$search = array(
'/\>[^\S ]+/s',  // strip whitespaces after tags, except space
'/[^\S ]+\</s',  // strip whitespaces before tags, except space
'/(\s)+/s'       // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
ob_start("sanitize_output");
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php /*?><meta name="verify-v1" content="zXRjEY50qXN7Oxbt0tAIDegKmUk5nG32qLmAzMuZSw0=" /><?php */?>
<meta name="google-site-verification" content="J-w0iienSxG8y23RN-NYZ0oh4y9YBygvb-ealpBmBi0" />

<?php
$controllerName = Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
$actionName = Zend_Controller_Front::getInstance()->getRequest()->getActionName();

$popupsessionTutor = new Zend_Session_Namespace('Popup_Session_Tutor');
$popupsessionCenter = new Zend_Session_Namespace('Popup_Session_Center');

?>

---- rest of the phtml file -----

Но не удалось найти мой источник HTML просмотра минимизированным. Что еще мне нужно сделать?

1

Решение

Поскольку вы используете ZF1 и предполагаете, что MVC и то, что вы опубликовали, является скриптом вида, вы можете написать плагин контроллера, который определяет dispatchLoopShutdown метод, который делает модификацию ответа, которую вы хотите.

<?php
class My_Controller_Plugin_Sanitize extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopShutdown()
{
$search = array(
'/\>[^\S ]+/s',  // strip whitespaces after tags, except space
'/[^\S ]+\</s',  // strip whitespaces before tags, except space
'/(\s)+/s'       // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);
$body = preg_replace($search, $replace, $this->getResponse()->getBody());

$this->getResponse()->setBody($body);

unset($body);
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]