Лучший способ, о котором я могу подумать, - это создать свой собственный пользовательский AppView , и все ваши контроллеры используют это:
class myController extends AppController {
var view = 'AppView';
...
}
Затем где-нибудь в вашем AppView вы захотите сделать что-то вроде:
function __construct(&$controller, $register){
parent::__construct($controller,$register);
$this->addScript('<script type="text/javascript" src="/path/to/js/' . $this->controller . '/' . $this->action . '.js"></script>');
}
Но я бы сделал шаг назад и сначала подумал бы о нескольких вещах.
Насколько велики ваши сценарии в среднем? Являются ли издержки вызова внешнего скрипта (до того, как скрипт кэшируется клиентом) лучше, чем добавление нескольких сотен байтов в ваш основной поток вывода (просто вставив скрипт на страницу, встроенный)?
Возможно, вам будет лучше где-то посередине - разделите ваши сценарии по контроллеру, но не по действиям. Таким образом, после первого посещения какого-либо действия клиент имеет все сценарии для всех действий. Таким образом, вы избегаете большой начальной загрузки всех сценариев приложения, но избегаете добавления N http циклических переходов (где N - количество действий, которые посещает новый пользователь).
Еще один способ решения этой проблемы - сделать все это в javascript. Просто разберись с ленивой схемой загрузки. Таким образом, ваше приложение просто загружает очень маленький файл loader.js, и этот скрипт выясняет, какие другие источники javascript нужно извлечь.
Примечание: я никогда не проверял свой хак с расширенным обзором, но держу пари, он сработает, если вы действительно захотите это сделать.