Возьмите это (не) режущего диска сценарий list.blade.php
:Laravel Блейд шаблоны визуализируются 2 раза
<?php
error_log(print_r("START" , true));
global $i;
for ($a = 0 ; $a < 3 ; $a++) {
$j = @(int)$i;
error_log(print_r($j , true));
echo $j;
$i = $j + 1 ;
}
error_log(print_r("STOP" , true));
Ожидаемый результат должен быть 012
, но выход 345
!
Если проверить журналы ошибок сервера, вы можете увидеть это:
START
0
1
2
STOP
START
3
4
5
STOP
Поэтому шаблон побежал в первый раз без вывода чего-либо, и он побежал во второй раз, и выход будет отправлен.
Я использую обновленную версию Laravel 4.2. Это не проблема, но когда каждая анализируемая строка запрашивает тяжелую вычислительную задачу, время загрузки всего лишь X2.
Считаете ли вы, что это ошибка или это нормальное поведение?
Есть ли способ избежать некоторых исполнений в шаблоне при первом запуске (сухой запуск)?
где вы можете скачать этот шаблон? И использование глобальных просто уродливает меня. Используйте декораторы, если вы хотите передать дополнительные данные. – Pinoniq
Этот шаблон - только PoC. Global просто используется для поддержания состояния между несколькими нагрузками, чтобы показать вам проблему. – Potsky