Все новости с тэгом Symfony

HTTP/2 Server Push с помощью Symfony HttpKernel

HTTP/2 поддерживает фичу под названием Server Push, позволяющую серверу отправлять таблицы стилей, JavaScript и другие статичные ресурсы в клиентский браузер без отдельных запросов.

Традиционно HTML страницы содержат ссылки на различные медиа-файлы, такие как JavaScript, CSS и изображения. Серверное приложение отправляет страницу браузеру, тот интерпретирует страницу и затем загружает с сервера статичные ресурсы.

Ваше серверное приложение, скорее всего, знает о том, какие ресурсы крайне важны для клиента. HTTP/2 Server Push даёт серверу возможность отправить определённые статические файлы прежде, чем клиент даже узнает, что они необходимы. Это приведёт к сокращению времени отрисовки при первой загрузке.

Server Push является дополнительной технологией и не устраняет необходимости ссылаться на таблицы стилей и другие медиа-файлы в ваших страницах. В HTML коде по-прежнему будут ссылки, но первый ответ от сервера будет включать дополнительные заголовки, сигнализирующие о контенте для предзагрузки браузером.

Это улучшенный способ встраивания статичных ресурсов, таких как изображения и CSS, в HTML страницу, поскольку отдельные ресурсы могут кэшироваться на клиенте. Те клиенты, которые не поддерживают Server Push, никак не отреагируют на дополнительные заголовки и продолжат функционировать так же, как и сегодня.

Читать дальше…

Symfony Routing — Как сопоставить маршрут на основе хоста

Вы можете указать соответствие входящего запроса на основе HTTP хоста.

mobile_homepage:
    path:     /
    host:     m.example.com
    defaults: { _controller: AcmeDemoBundle:Main:mobileHomepage }

homepage:
    path:     /
    defaults: { _controller: AcmeDemoBundle:Main:homepage }

Оба маршрута соответствуют одному и тому же пути — /, однако первый будет соответствовать запросу, только если хостом будет являться m.example.com.

Читать дальше…

Переосмысление Event Listeners

Давайте поговорим об Event Listeners. Вы знаете, что такое Event Listener?

Ну, если вы привыкли работать с Symfony, тогда вы должны знать, для чего они предназначены. Если нет, то не постесняйтесь взглянуть в документацию Symfony. (Или почитайте про паттерн Наблюдатель, прим. перев.)

Этот пост преследует цель начать небольшое обсуждение о том, как Event Listener должен выглядеть, если мы действительно хотим сохранить логику отдельно.

Читать дальше…

Компонент маршрутизации Symfony 2.7 — Routing

Установка

Вы можете установить компонент двумя различными способами:

  1. Через Composer (symfony/routing в Packagist);
  2. Используя официальный Git репозиторий (https://github.com/symfony/Routing).

Затем включите vendor/autoload.php, чтобы задействовать механизм автозагрузки, поставляемый Composer’ом. Иначе, ваше приложение не сможет найти классы этого компонента Symfony.

 

Использование

Для того, чтобы настроить базовую систему маршрутизации необходимы три вещи:

Читать дальше…