Skip to content

[BestPractices Removing micro-optimization note about @Template #4464

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions best_practices/controllers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,20 +76,15 @@ Template Configuration
Don't use the ``@Template()`` annotation to configure the template used by
the controller.

The ``@Template`` annotation is useful, but also involves some magic. For
that reason, we don't recommend using it.
The ``@Template`` annotation is useful, but also involves some magic. We
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You avoided the first person perspective in the rest of the Best Practices, didn't you?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, this is one spot where we use it liberally - as in "we recommend..."

don't think its benefit is worth the magic, and so recommend against using
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't this comma an Oxford comma?

it.

Most of the time, ``@Template`` is used without any parameters, which makes
it more difficult to know which template is being rendered. It also makes
it less obvious to beginners that a controller should always return a Response
object (unless you're using a view layer).

Lastly, the ``@Template`` annotation uses a ``TemplateListener`` class that hooks
into the ``kernel.view`` event dispatched by the framework. This listener introduces
a measurable performance impact. In the sample blog application, rendering the
homepage took 5 milliseconds using the ``$this->render()`` method and 26 milliseconds
using the ``@Template`` annotation.

How the Controller Looks
------------------------

Expand Down