HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/somerenslust.komma.pro/app/WwwRootApp.php
<?php

namespace App;

use App\KommaApp\Languages\Models\Language;
use App\KommaApp\Sites\Models\Site;
use Illuminate\Foundation\Application;

/**
 * This is an extension of the laravel App.
 * It changes the public folder to wwwroot
 * Don't forget to update the server.php file.
 * Don't forget to check your gulpfile.js
 *
 * And make language and site accessible by App::{function}
 *
 * Class WwwRootApp
 * @package App
 */
class WwwRootApp extends Application
{
    /** @var Language $language */
    protected $language = null;
    protected $site = null;

    //Set living time to 1 month
    private $languageCookieLivingTime = 312480;

    public function publicPath()
    {
        return $this->basePath.DIRECTORY_SEPARATOR.'wwwroot';
    }

    /**
     * Get language
     *
     * @return Language
     */
    public function getLanguage():Language
    {
        if(!$this->language) {
            $language = Language::where('iso_2', '=', strtolower(config('app.locale')))->first();
            if($language) $this->language = $language;
        }

        return $this->language;
    }

    /**
     * Set language application
     *
     * @param Language $language
     */
    public function setLanguage($language)
    {
        $this->language = $language;

        $iso = $language->iso_2;

        //Make new cookie and set App locale
        \Cookie::queue('language', $iso, $this->languageCookieLivingTime);

        //Also make a session just in case
        \Session::put('language', $iso);

        \App::setLocale($iso);
    }

    /**
     * @return Site
     */
    public function getSite(): Site
    {
        return $this->site;
    }

    /**
     * @param Site $site
     */
    public function setSite(Site $site)
    {
        $site->load('languages');
        $this->site = $site;
    }

}