Laravel5中环境变量的载入
Laravel5中环境变量的载入
Bootstrap
在Kernel中可以发现第一个启动项就是关于ENV的
protected $bootstrappers = [ 'Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', 'Illuminate\Foundation\Bootstrap\BootProviders',];
Illuminate\Foundation\Bootstrap\DetectEnvironment 在这个类中启动,进入查找,会发现
try{ Dotenv::load($app->basePath(), $app->environmentFile());}catch (InvalidArgumentException $e){ //}$app->detectEnvironment(function(){ return env('APP_ENV', 'production');});
具体的方法就是Dotenv的一个静态load方法,并且如果读取失败,会默认设置为’production’
这里可以看到load传入的两个参数是为了找到读取文件的位置,$app->environmentFile()返回的是文件名,是$app->environmentFile,默认是.env。在$app中有一个方法:
public function loadEnvironmentFrom($file){ $this->environmentFile = $file; return $this;}
用这个方法可以修改载入env文件的名字。
解析ENV文件
Dotenv::load方法先判断文件is_readable 和 is_file,否则抛出异常。ini_get, ini_set设定auto_detect_line_endings为1,然后再设会原来的值。
file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
读出文件的每一行,然后foreach遍历,然后设置环境变量。可以发现,这里支持NestedVariable,就是说设置过的变量可以用$(VAR_EXISTS)在读取其值,类似shell。
设置变量存在于三个位置,putevn(), $_ENV, $_SERVER, 并且会判断是否key是否重复,如果重复就跳过。
读取时候也是从这三个位置, getenv(),$_ENV, $_SERVER。
app中的几个关于Env的方法:
public function environmentFile()默认返回’.env’
public function environment()不带参数,返回当前env的值;如果带参数(array),则遍历比对判断,如果包含当前环境名称,则返回true
public function isLocal() $app[‘env’]是否等于’local’
public function afterLoadingEnvironment(Closure $callback)
public function detectEnvironment(Closure $callback)

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Alipay PHP ...

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...
