Работает в Ubuntu 12.04 с использованием HHVM 3.1.0 (последняя версия). Недавно я попытался обновить Laravel 4.1 до 4.2, и у меня действительно странная проблема с неправильным компилированием представлений Blade. В журналах Laravel не было ошибок, поэтому я проверил журналы HHVM. Оказывается, при попытке загрузить сохраненное представление с помощью блейда у HHVM возникали ошибки компиляции. Я открыл сохраненное представление и обнаружил, что различные варианты использования Blade компилируются неправильно.
Оригинальный код лезвия:
<head>
@include('layouts.partials._favicon')
</head>
<body id="signup-rotate">
@include('layouts.partials._flash-messages')
...
Неправильная компиляция:
<head>
<?php echo $__env->make(, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>('layouts.partials._favicon')
</head>
<body id="signup-rotate">
<?php echo $__env->make('layouts.partials._flash-messages', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
...
Как видите, код в шапке почему-то не добавляет представление для включения в функцию, а добавляет его в конец. Это, очевидно, приводит к тому, что HHVM не может скомпилировать код, и возникает ошибка. Мне кажется странным, что большинство из этих включений работают, а другие нет.
Это известная проблема с Laravel 4.2, или в моем случае есть что-то уникальное, что может вызвать это? Похоже, что в Blade также отсутствуют некоторые теги, поэтому у меня будет случайный синтаксис Blade в моих файлах просмотра, когда они будут отображаться (я могу предоставить несколько примеров кода, если потребуется).
Обновление На самом деле это известная проблема, о которой сообщалось как в репозиториях Laravel, так и в репозиториях HHVM git. По-видимому, это было исправлено в ночных играх HHVM и будет работать правильно в следующем выпуске.