Чтобы ответить себе:
Ответ jiggys на отделение JavaScript от PHP, вероятно, является наиболее чистым, и его следует придерживаться, когда это возможно.Но иногда это невозможно.В моем случае я не могу разделить PHP и JavaScript, не тратя огромное количество времени (это старый и большой проект).
В любом случае, YUI Compressor не обрабатывает комментарии JavaScript, начинающиеся с /*!
, поэтомуключ заключается в том, чтобы заключить PHP-код в блок комментария следующим образом:
/*!
<?php $include 'headerDefinitions.js.php'; ?> */
function hello(name) {
alert('Hello ' + name);
}
hello('<?= $_GET["name"] ?>');
Вот и все.При просмотре в браузере будет пустой блок комментариев, но его можно пренебречь или заполнить некоторой информацией об авторских правах.
PHP-код в строках JavaScript не требует дальнейшего внимания, поскольку они (очевидно) остаются нетронутыми во время сжатияпроцесс:
var myString = '<?= $_GET["name"] ?>';
не нуждается в изменении.Вам нужно только позаботиться о том, чтобы не использовать одинарные или двойные кавычки как для объявления строки JavaScript, так и для строк в коде PHP.