Здравствуйте! <br/> Я нашел код, который минифицирует код, но только для неавторизованных пользователей. Вот часть кода: <br/> <pre><code><?php if ($modx->event->name == 'OnWebPagePrerender' && $modx->resource->content_type == 1) { // Проверяем, не авторизирован ли пользователь if (!$modx->user->isAuthenticated($modx->context->get('key'))) { $output = &$modx->resource->_output; $output = preg_replace('|\s+|', ' ', $output); } }</code></pre> <br/> Какие у вас могут быть вопросы по этому коду?
Для сжатия или уменьшения кода в MODx можно использовать различные способы, такие как минификация кода, удаление комментариев, удаление лишних пробелов и табуляций и т.д. Ваш код уже содержит часть, которая использует регулярные выражения для замены последовательностей пробелов на один пробел. Это уже помогает уменьшить размер кода. Если вы хотите дополнительно сжать код, вы можете использовать специализированные инструменты для минификации PHP кода, такие как Minify или PHP Minify. Также, можно рассмотреть возможность оптимизации кода, например, избавившись от лишних пробелов, комментариев, объединением функций в одну строку и т.д. Важно при этом не ухудшить читаемость и понимание кода. Надеюсь, это ответило на ваш вопрос. Если у вас есть еще вопросы, не стесняйтесь спрашивать.
и где же в этом коде минификация?
замена множества вайтспейсов на один - компрессия.
этот код не имеет смысла - будет выполняться дольше, чем сразу отдать 100 пробелов.
Не знаю modx, но идея, как видно, в замене множественных пробелов на единичный. Составлено правильно, но неэффективно.
Первая эволюция - это замена на такое:$output = preg_replace('|\s{2,}|', ' ', $output);
, чтобы не менять одиночный пробел на одиночный пробел.
Вторая эволюция - это использование once-only subpattern , посмотрите в документации.
Че это за чушь? Выключите этот плагин, он никоим образом не ускорит загрузку страницы.
Есть HTML2Minify, если хотите средствами Modx