Dynamisk innstilling baseURL innenfor konfigurasjonen i Symfony2

stemmer
5

Jeg vet at innen Symfony2 konfigurasjon, er det ingen referanse til basen url, så er det ingen forespørsel; programmet kan enten kjøres i CLI eller innen en web server, og derfor kan vi ikke stole på forespørsel. Men likevel, jeg har konfigurasjon som ber om stilark eller javascript basen url (for eksempel JQueryHelperBundle, der du kan stille inn jquery lokale banen - å være den lokale url). Saken er, er det en måte å dynamisk sette en base url for konfigurasjon, uten å måtte endre det slik at:

  • Søknaden kan flytte fra en katalog under utvikling, enten www / mittprosjekt eller www / foo / mittprosjekt uten å endre innstillingene
  • Produksjonen vil fungere på samme måte, bortsett fra at omskriving basen url med apache ville bli oppdaget (virtualhosting er vanlig, der baseURL er kartlagt til web-katalog som '/').

Er det en måte å få den basen url informasjonen? Vil bruke forskjellen mellom $_SERVER['DOCUMENT_ROOT']minus kjernen roten dir være en måte å oppdage slike basen url? Men hva om virtuellverten rebasing url til / på web-katalogen? Hardcoding basen url helt par prosjektet til der den står i utvikling, og flytte prosjektet rundt ville kreve å endre basis url hver gang, noe som er irriterende.

Så, er det en måte å oppdage dynamisk basen url innen Symfony2 konfigurasjon, i henhold til miljøet, uten å være avhengig forespørselen?

Publisert på 17/06/2011 klokken 05:45
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Jeg måtte gjøre det på en tjeneste, så jeg injisert ruteren tjenesten i min egen tjeneste og deretter:

$baseUrl = $router->getContext()->getHost();

Men jeg anså det mer som en hack som en ekte innslag i Symfony2 rammeverk. For eksempel, i Controller kan du generere absolutt url lett (eksempel fra symfony bok):

$router->generate('blog_show', array('slug' => 'my-blog-post'), true);

Og i kvisten malen, har du {{url}} funksjon

Jeg håper dette hjelper

Svarte 17/06/2011 kl. 08:48
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more