Кеширует ли PHP include
запросы?
Насколько я знаю, PHP не включает в кеш по умолчанию. Но ваша базовая файловая система, скорее всего, сделает это. Так что доступ к одному и тому же файлу снова и снова, как в вашем примере, должен быть достаточно быстрым.
Если вы столкнетесь с реальными проблемами, вам сначала нужно будет профилировать приложение, чтобы узнать, где на самом деле находится узкое место. Так что если вы не столкнулись с какими-либо проблемами, я бы посоветовал использовать include не вредно.
Что касается хорошей практики, я думаю, что это довольно хорошо объяснено в этой статье: Когда Flat PHP встречает Symfony .
Повышение возможности повторного использования вашего кода
Это не очень высокий дизайн, это просто показать, как вы можете начать делать вещи более модульными. Вы должны быть в состоянии взять код 1: 1 из вашего включаемого файла, просто позаботьтесь о том, чтобы все необходимые переменные шаблона были переданы в функцию (не используйте глобальные переменные для этого, она рано или поздно встанет у вас на пути):
# in your answer.tpl.php
function answer_template(array $vars) {
extract($vars);
... your template code ...
}
# your script
array = array('a', 'b', 'c');
$output = '';
require('answer.tpl.php');
foreach($array as $e)
{
$output .= answer_template(compact('e'));
}
echo $output;