2012-05-07 34 views
8

Chcę poznać katalog główny aplikacji, np. System. /var/www/app/ lub /app/ dla celów przesyłania plików. Kiedy ładuję, wydaje mi się, że potrzebuję nazwy katalogu "systemowego", do użycia w łączach w interfejsie internetowym, potrzebuję ścieżki "względnej". Jak uzyskać te informacje?Pobierz główny adres URL aplikacji i nazwę katalogu w aplikacji Symfony 2

W poprzednim projekcie, ja zdefiniowane stałe w app*.php plików (regulator przedni)

define('APP_ROOT', __DIR__); 

Wonder jeśli tam jest lepszy sposób?

Odpowiedz

16

W każdym ContainerAware klasy można uzyskać lokalizację katalogu stron przez,

$this->container->get('kernel')->getRootdir().'/../web'; 
+0

hmm ... Jestem w moim modelu doktryny ... Myślę, że po prostu użyję mojej starej metody. Powinienem o tym pamiętać. –

+2

Czy nie powinno być dobrą praktyką używanie DIRECTORY_SEPARATOR zamiast "/" do definiowania różnych ścieżek, na wypadek gdyby projekt mógł być hostowany w środowisku Windows? –

+0

@BiggieMac http://alanhogan.com/tips/php/directory-separator-not-otrzebne – maryisdead

9

Jeśli pojemnik nie jest dostępny, można użyć dependency injection: set %kernel.root_dir% jako argument do swojej klasy w konfiguracji usług.

Powiązane problemy