Laravel paczki a plik config.pjp

0

Witam. Z racji tego że lubię rozumieć co kodzę, a nie Tworzyć kod dla sztuki, to ,am małe pytanie odnośnie pliku config w paczkach laravela, mianowicie, napisałem w service paczki taki oto skrypt.

$this->mergeConfigFrom(
    			$this->baseDir().'config.php','forum';
    );

Którego zadaniem jest upublicznienie pliku config.php do pakietu laravel.
Plik config zawiera:

return [
			'model'=> [
				'post_model' => PackageName\Forum\Models\Posts::class,
				'subject_model' => PackageName\Forum\Models\Subjects::class,
				'user_model' => PackageName\Forum\Models\Users::class,
		]
]

Wszystko pięknie, po wywołaniu komendy php artisan vendor:publish, (migracje) oraz plik config się upubliczniają.

Małe wprowadzenie i można przejść do rzeczy. W dokumentacji jest wyraźnie napisane, że aby odwołać się do modeli w configu, należy wywołać

config('forum.post_model');

Pytanie: Kiedy i kto powinien się do nich w taki sposób odwoływać?

0

Nie do końca rozumiem. Pytasz się kiedy można się odwołać do configu? No zawsze kiedy potrzeba byle do enva odwoływać się w configu i nigdzie poza nim :)

0

Hmm, jakby to ująć. Chodzi Mi o jakiś przykład, kiedy użytkownik i gdzie może chcieć użyć tego config('cos','cos')

0

Przykład z życia wzięty który niedawno robiłem. Załóżmy, że masz oprócz laravela jakaś komunikacja realtime przez websockety np broatcast na chacie. Front musi znać port na jakim ma nasłuchiwać, a przecież nie można tego hardcodować bo może być, że lokalnie robisz na innym a na serwerze musisz na innym to postawić. Tak więc co robisz?
Do enva wrzucasz dla przykładu:
WS_PORT=3000

Tworzysz swojego configa np ws.php i w nim dodajesz:


<?php 

return [
    "ws_port"=> env('WS_PORT', 2000);
])->toJson();

Robisz gdzieś endpointażeby front ajaxem pobrał sobie ten port:

function getSettingsWs() {
    return response( [
        "ws_port"=> config('ws_port');
    ])->toJson();
}

Jeśli mowa o zmianie danych na szybko do configa to nie wiem jak jak w najnowszej ale kiedyś potrzebowałem mieć osobny model dla użytkowników i adminów więc żeby systemy wbudowane laravela łapały różne modele jako użytkownika do zalogowania to trzeba było nadpisać tę ustawienie w configu gdy ktoś wywołał stronę części adminowskiej.

0

Super, dziękuje. Do tego mogę odwołać się w każdym miejscu w kodzie?

0

praktycznie wszędzie gdzie powinieneś mieć potrzebę coś ruszać

0

Mam jeszcze jedno pytanie, w jaki sposób mogę wykorzystać laravelową autoryzacje, w taki sposób, aby nie uzależnić paczki od samego laravela? Czytałem że wystarczy wykorzystać interfejs Authorizable, ale zupełnie nie wiem gdzie i jak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1