Şöyle basitce anlatayım o zaman; mesela localinde mysql database username root olarak ayarlı.Yani localinde database kullanıcın root.
Ama gerçek ortamda yani bizim prod dediğimiz ortamda username fooBlabla...
local ortam da .env dosyası var...
Ama prod ortamda .env dosyası yok..
Gel şimdi local ortamda .env dosyasına..
DB_USERNAME=root
olarak yazacaksın...
dosya kayboldugunda..
config/database.php
mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
//////////////////////////////////////////////////////////////////////////////////////////////
//ikinci parametreye yazdıgın değer prodda geçerli olacak
'username' => env('DB_USERNAME', 'fooBlabla'),
///////////////////////////////////////////////////////////////////////////////////////////////
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
Yani işin püf noktası şurası.Laravel senin .env dosyanla doğrudan ilgilenmez.
Sen env(...............) yardımcısı kullandıgın icin bu dosyayla ilgileniyor..
Laravel her zaman ve her zaman ayar dizini olarak config dizini içine bakar.
sen burada
username = > fooBlabla
şeklinde direkt bir stringde kullanabilirsin...böyle yazarsan username keyi icin .env dosyasının hiç bir önemi kalmayacaktır.
Zira az önce de dedim..senin .env dosyasınla irtibatın tamamıyla
env() yardımcı methoduyla oluyor..başka türlü hiç bir alaka kurmaz laravel bu dosyayla ayarlarının....
Anlatabildim mi bilemiyorum...