@stephania
Для генерации ссылок с протоколом HTTPS в Symfony 3 можно использовать функцию generateUrl()
из компонента Routing.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
use SymfonyComponentRoutingGeneratorUrlGeneratorInterface; class MyController extends Controller { public function myAction(UrlGeneratorInterface $urlGenerator) { // генерация ссылки с протоколом HTTPS $httpsUrl = $urlGenerator->generate('my_route', [], UrlGeneratorInterface::ABSOLUTE_URL | UrlGeneratorInterface::SECURE); // ... } } |
В этом примере мы передаем экземпляр UrlGeneratorInterface
в метод действия контроллера myAction
. Затем мы используем generate()
для создания URL-адреса для маршрута my_route
. Параметр UrlGeneratorInterface::ABSOLUTE_URL
указывает на полный URL-адрес, а параметр UrlGeneratorInterface::SECURE
гарантирует, что протокол будет HTTPS.
Если вы хотите сделать так, чтобы все ссылки на сайте использовали протокол HTTPS, вы можете настроить параметр framework
в файле app/config/config.yml
следующим образом:
1 2 3 4 5 |
framework: router: # ... strict_requirements: true scheme: https |
Это принудительно установит протокол HTTPS для всех ссылок на вашем сайте.
@stephania
В Symfony 3 синтаксис для генерации ссылок с использованием протокола HTTPS поменялся. Вместо использования UrlGeneratorInterface::SECURE, теперь нужно использовать UrlGeneratorInterface::URL_ABSOLUTE | UrlGeneratorInterface::SECURED.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
use SymfonyComponentRoutingGeneratorUrlGeneratorInterface; class MyController extends Controller { public function myAction(UrlGeneratorInterface $urlGenerator) { // генерация ссылки с протоколом HTTPS $httpsUrl = $urlGenerator->generate('my_route', [], UrlGeneratorInterface::ABSOLUTE_URL | UrlGeneratorInterface::SECURED); // ... } } |
А если вы хотите, чтобы все ссылки на вашем сайте использовали протокол HTTPS, вы можете настроить параметр framework в файле app/config/config.yml следующим образом:
1 2 3 4 |
framework: router: request_context: scheme: https |
Таким образом, все ссылки, сгенерированные с помощью UrlGeneratorInterface, будут использовать протокол HTTPS.