Niestety w związku z aktualizacją laravel z wersji 4.0 do 4.1 niektóre rzeczy zostały usunięte, między innymi możliwość zdefiniowania środowiska za pomocą domen.
Przykładowy kod działający w laravel 4.0 znajdujący się w pliku bootstrap/start.php
$env = $app->detectEnvironment(array(
'local' => array('*.dev'),
'staging' => array('staging.example.com'),
'production' => array('example.com', 'www.example.com')
));
nie zadziała już w wersji 4.1 gdyż została wycofana ze względów bezpieczeństwa. Jak napisane jest w wyjaśnieniu:
For security reasons, URL domains may no longer be used to detect your application environment. These values are easily spoofable and allow attackers to modify the environment for a request.
zmienną bardzo łatwo podmienić w żądaniu.
Teraz, zamiast nazw hostów podajemy nazwy maszyn które znajdują się w danym środowisku
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
Jak uzyskać nazwę maszyny?
Wystarczy wydać polecenie hostname. O ile w systemach z rodziny unixa i apple jest to oczywiste, o tyle w windowsie niektórzy mogą mieć problem. Rozwiązanie jest proste, wystarczy kliknąć Start > Uruchom > wpisać cmd > zatwierdzić a następnie w konsoli wydać polecenie.
Jak uzyskać wartość zmiennej środowiskowej?
$environment = App::environment();
Więcej szczegółów można znaleźć tutaj.