Понятные сообщения об ошибках одна из сильных сторон Twig, особенно, когда речь идет о синтаксических ошибках в шаблонах. Теперь эти сообщения стали еще лучше.
Во-первых, Twig 1.1 добавляет название шаблона и номер строки, в которой произошла ошибка, в сообщение о ней (даже если исключение вызвано не Twig – ниже подробнее об этом). И это очень удобно при отладке.
Далее, когда бросалось исключение во время обработки шаблона, довольно проблематично было узнать, откуда оно было вызвано.
Это из-за того, что Twig не перехватывал исключения и поэтому сообщение об ошибке указывало на место, где рендериться шаблон (скорее всего – в контроллере). Конечно, всегда можно посмотреть на стек исключений PHP, и увидеть, что ошибка содержится, к примеру, в скопилированном файле, а не в оригинальном шаблоне. Это хорошо для разработчиков PHP, но никак не для верстальщика.
Twig 1.1 убрал эту проблему, теперь все исключения рендеринга шаблонов содержат информацию о том, где они произошли в оригинальном файле шаблона.
Рассмотрим следующий шаблон:
{{ foo.bar }}
Где Foo выглядит так:
class Foo
{
public function bar()
{
throw new Exception('Ошибка вызова bar.');
}
}
Сообщение об ошибке в Twig 1.0:
Uncaught exception 'Exception' with message 'Ошибка вызова bar.' in .../controller.php:22
И сообщение об ошибке в Twig 1.1:
Next exception 'Twig_Error_Runtime' with message 'An exception has been thrown during the rendering of a template ("Ошибка вызова bar.") in "index" at line 13.'
И еще лучше с PHP 5.3, где исключения Twig можно обрабатать вашим кодом.
Я уверен что вам понравятся эти изменения, так как они безусловно могут повысить производительность.