In diesem Beitrag möchte ich zeigen, wie man Anwendungswerte in Laravel hinterlegt.

Ziel

Ich möchte in der .env-Datei Anwendungswerte hinterlegen und über eine eigene Klasse der Anwendung zur Verfügung stellen.

1. Schritt

Im ersten Schritt füge ich die Anwendungswerte in die Datei services.php aus dem Verzeichnis config ein.

 'appvalue' => [
        'appName' => env('APPVALUE_APPNAME'),
        'appVersion' => env('APPVALUE_VERSION'),
        'appLastUpdate' => env('APPVALUE_LASTUPDATE'),
    ],

2. Schritt

Jetzt schreibe ich die „Anwendungswerte“ noch in die .env-Datei.

APPVALUE_APPNAME="Olivers Blog"
APPVALUE_VERSION=0.0.1
APPVALUE_LASTUPDATE=10.05.2019

Den Wert appName könnte ich jetzt zum Beispiel mit dem Befehl config(’services.appvalue.appName‘) verwenden.
Ich möchte jedoch eine eigene Klasse erstellen und die Werte dort „verlinken“.

3. Schritt

Ich erstelle im Verzeichnis app ein neues Verzeichnis mit dem Namen Application. Dort erstelle ich eine neue PHP-Datei mit dem Namen Appvalue.php.
Diese Datei hat folgenden Inhalt

<?php

namespace App\Application;

class Appvalue
{
   
    public function __construct()
    {
        $this->appName = config('services.appvalue.appName');
        $this->appVersion = config('services.appvalue.appVersion');
        $this->appLastUpdate = config('services.appvalue.appLastUpdate');
    }
}

4. Schritt

Jetzt wollen wir die Klasse „verbinden“. Dazu rufe ich die Datei AppServiceProvider.php im Verzeichnis app\Providers auf:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        //
        app()->bind('appvalue', function () {
            $appvalues = new \App\Application\Appvalue;
            return $appvalues;
        });

    }

    public function boot()
    {
        //
    }
}

5. Schritt

Und so verwende ich diese Anwendungwerte in einer HTML-Datei:

            <div class="w-1/2 text-right">
                <div class="text-orange font-light p-6">
                    {{ app('appvalue')->appName }}<br>
                    {{ app('appvalue')->appVersion }}<br>
                    {{ app('appvalue')->appLastUpdate }}<br>
                </div>
            </div>