Что касается вашей "дилеммы", которая звучит совсем как другая проблема, я бы действительно избегал вызова index.php при каждом вызове контроллера. Это ваша основная проблема, я думаю. Если вы должны, я полагаю, вы можете использовать сеанс для отслеживания вызовов пользователя на различные страницы.
Но index.php должен быть ТОЛЬКО точкой входа, и любая дальнейшая логика кода, которая будет выполняться, должна полностью не знать о ее существовании.
Относительно определения браузера:
Насколько мне известно, в настоящее время нет установленного компонента ZF, который бы определял для вас браузер. Есть два способа сделать это. Одним из них является проверка браузера на основе строки User Agent с использованием $_SERVER["HTTP_USER_AGENT"]
.
Другой способ, конечно же, это обнаружение на стороне клиента. Большинство библиотек JS предоставляют методы для этого; как известно большинству пользователей jQuery, jQuery устарел в своих jQuery.browser
функциях, но в настоящее время они все еще доступны.
Как указано в http://docs.jquery.com/Utilities/jQuery.browser, однако, рекомендуется вместо обнаружения браузера на стороне клиента проверять наличие необходимых вам функций.