2015-03-18 43 views
10

'daki komut satırından çalışıyorsa, uygulama Artisan (geçişler, yollar, rota: liste) aracılığıyla komut satırından çalıştırılıyorsa uygulama akışını değiştirmemiz gereken bir kullanım durumum var.Laravel 5

laravel 4 Bunda

böyle yapılabilir:

App::runningInConsole() 

laravel 5 eşdeğer bir var mıdır?

Ortam (.env) değişkenlerini kullanmak bu durumda tercih edilmez, çünkü bu komutlar zaman zaman üretimde (üretim kaynaklarına işaret eder) çalıştırılmalı ve yinelenmeyi tercih etmemeyi tercih ediyorum (.env.commandline) Dosyalar.

cevap

10

Komut dosyasının bir komuttan başlatılıp başlatılmadığını öğrenmek için php_sapi_name (http://php.net/manual/en/function.php-sapi-name.php) PHP işlevini kullanabilirsiniz. Senin durumunda

, sen Gerçi her durumda kontrol ettiği değeri bulmaya doc kontrol etmek gerekebilir

if (strpos(php_sapi_name(), 'cli') !== false) { 
    // Run from command 
} 

gibi bir şey kontrol etmelidir. (Bazen farklı olabilir, ama temelde hep bir komuta yoluyla başlatılan bir komut dosyasından farklı bir çıkış olmamalıdır) o söz edilmemiş olmasına rağmen hala App::runningInConsole() yapabilirsiniz laravel 5.2 önceden herhangi sürümleri hakkında ancak içinde

+0

Bu çalışma, önceden olduğu gibi yerleşik bir çözüm olmasını umuyordu, ancak daha fazla araştırma, işlevselliğin kullanımdan kaldırıldığını gösteriyor. Çözüm olarak işaretleme. –

+0

@ForrestMarvez% 100 emin değilim, ancak Laravel 5'de kullanımdan kaldırılmış olarak işaretlendiğini düşünüyorum çünkü işlevin sonucu her sunucuda/yapılandırmada her zaman aynı değildi. – Sugar

8

emin değil dokümantasyon.

+0

'5.0.35' sürümünde kullanabiliyorum. – user2094178

+2

, muhtemelen 5.4.36'da çalıştığı doğrulanmıştı sadece bir ad alanı issue.use '\ App :: runningInConsole()' –