1) js-кода может быть всего пара строк
2) иногда необходимо вывести разные блоки js-кода и условия их вывода могут быть совсем нетривиальные и без PHP не обойтись
3) выводить код в JS-переменные только ради того, чтобы избавиться от PHP ... ну это такое ...
4) в данном контексте вопрос о том, насколько это решение "удобно/неудобно" для front-а меня мало волнует
Для себя пока выработал следующее решение: весь JS-код находится в одном PHP-файле, но в разных View используется только необходимая для этого View часть/section
Код: Выделить всё
// app/views/some-action.php
<?php $this->registerJs( $this->render('_js.php', ['section' => 'sectionName'] + $vars), $this::POS_READY ); ?>
<?php $this->registerJs( $this->render('_js.php', [
'section' => 'sectionName',
'url' => Url::to(['/some/action', 'foo' => $bar]),
'foo' => $bar,
]), $this::POS_READY );?>
// app/views/_js.php
<? switch($section) : case 'onload' : ?>
$(function() {
});
<? break; case 'sectionName' : ?>
// some code for sectionName
<? break; endswitch; ?>