a Sensio Labs Product

Гибкий, быстрый и безопасный
шаблонизатор для PHP

Twig 1.1: Улучшение отчетов об ошибках

Понятные сообщения об ошибках одна из сильных сторон 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 можно обрабатать вашим кодом.

Я уверен что вам понравятся эти изменения, так как они безусловно могут повысить производительность.

Добавить комментарий