$_SERVER
변수에 액세스 할 필요가
서비스에 $ _SERVER 변수를 주입하는?어떻게
내 현재 추측은 RequestStack을 주입하는 것이지만 다른 한편으로는 완전한 RequestStack을이 서비스에 연결하고 싶지 않습니다.
다른 방법이 있습니까?
P. 내가 당신을 이해하는 경우 등 https://github.com/aferrandini/Maxmind-GeoIp
$_SERVER
변수에 액세스 할 필요가
서비스에 $ _SERVER 변수를 주입하는?어떻게
내 현재 추측은 RequestStack을 주입하는 것이지만 다른 한편으로는 완전한 RequestStack을이 서비스에 연결하고 싶지 않습니다.
다른 방법이 있습니까?
P. 내가 당신을 이해하는 경우 등 https://github.com/aferrandini/Maxmind-GeoIp
:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
// retrieve SERVER variables
$request->server->get('HTTP_HOST');
내가 볼 수 있듯이, 당신의 변수를 달성하기 위해 아무 문제가 없다 현재 요청을 얻기 위해 스택을 요청하십시오.
당신은 요청 서비스를 호출 할 수 있지만 요청이 변경할 수 있기 때문에 ScopeWideningInjectionException 예외가 발생할 수 있습니다.
서비스 파일 :<?php
namespace Some\GreatBundle\ServicePath;
use Symfony\Component\HttpFoundation\RequestStack;
class GreatService
{
private $request;
public function __construct(RequestStack $requestStack)
{
$this->request = $requestStack->getCurrentRequest();
}
public function getGeoIpCountryCode()
{
return $this->request->server->get("GEOIP_COUNTRY_CODE");
}
}
YML :
services:
your_great_service:
class: Some\GreatBundle\ServicePath\GreatService
arguments: ["@request_stack"]
요청 스택에서 추가 geo ip 서비스 클래스로 서비스를 분리 할 수 있습니다. :) –
처럼 번들에 대한 링크와 함께 내 질문에 대답하지 마십시오, 당신은 서비스에 $_SERVER
변수를 사용하고 싶습니다. 내가 심포니 문서에서 이걸 발견 : 당신은을 주입하는 서비스를 말할 필요
$request->server->get('GEOIP_COUNTRY_CODE');
서비스 파일 유형입니까? yml 또는 xml? –
yaml을 파일 형식으로 사용하고 있습니다. – gries