Tefito

He aha nga huihuinga i Laravel, whirihoranga me te whakamahi me nga tauira

Ko nga huihuinga Laravel ka taea e koe te penapena korero, me te whakawhiti i waenga i nga tono i to tono paetukutuku. 

He huarahi ngawari ki te pupuri i nga raraunga mo te kaiwhakamahi o naianei. Ma tenei akoranga e hoatu ki a koe nga tikanga o te mahi me nga huihuinga i Laravel.

He aha te wahanga Laravel

I Laravel, ko te huihuinga he huarahi ki te penapena korero, ki te whakahaere tika i nga tono a te kaiwhakamahi. Ina timata te kaiwhakamahi i te tono Laravel, ka tiimata aunoa he waahi mo taua kaiwhakamahi. Ka penapenahia nga raraunga hui ki runga i te kaimau, ka tukuna he pihikete iti me te tohu tohu motuhake ki te kaitirotiro a te kaiwhakamahi hei tautuhi i te waahi.

Ka taea e koe te whakamahi i te waahi ki te rokiroki raraunga e hiahia ana koe ki te whakamahi puta noa i nga wharangi maha, i nga tono ranei. Hei tauira, ka taea e koe te whakamahi i te waahi mo te motuhēhēnga a te kaiwhakamahi, te penapena ranei i etahi atu korero e hiahia ana koe ki te whakamahi i te waa o to tono.

Whirihoranga Wātū i Laravel

Hei whakamahi i nga wahanga i Laravel, me whakaahei koe ki roto i te konae config/session.php o whirihoranga. I roto i tenei konae ka taea te whakarite tawhā whirihoranga e pa ana ki nga waahi. Hei tauira te roanga o te waahi, te taraiwa hei whakamahi mo te penapena i nga raraunga huihuinga, me te waahi rokiroki mo nga raraunga huihuinga. 

Kei te konae nga whiringa whirihoranga e whai ake nei:
  • atekōkiri: Ka whakapūtā te atekōkiri wātū o muadefikua rite ki te whakamahi. Ka tautokohia e Laravel etahi taraiwa waahi: te konae, te pihikete, te paataka raraunga, te apc, te memcached, te redis, te dynamodb, me te raupapa;
  • ora: Ka tautuhi i te maha o nga meneti e tika ana kia whai mana te waahi;
  • expire_on_close: Mēnā ka tautuhia ki te pono, ka pau te wātū ina katia te tirotiro a te kaiwhakamahi;
  • whakamuna: pono te tikanga ka whakamuna te anga i nga raraunga hui i mua i te penapena;
  • kōnae: Mēnā ka whakamahia te atekōkiri wātū kōnae, ka tohua e tēnei kōwhiringa te wāhi rokiroki kōnae;
  • hononga: Mēnā ka whakamahia te atekōkiri wātū pātengi raraunga, ka tohua e tēnei kōwhiringa te hononga pātengi raraunga hei whakamahi;
  • ripanga: Mēnā ka whakamahia te atekōkiri wātū pātengi raraunga, ka tohua e tēnei kōwhiringa te ripanga pātengi raraunga hei whakamahi hei rokiroki raraunga wātū;
  • rota: He huinga uara i whakamahia ki te kowhiri matapōkeretia te uara pihikete ID wātū;
  • pihikete: Ka tohua e tenei whiringa te ingoa o te pihikete ka whakamahia hei penapena i te ID waahi. Ko te ara, te rohe, te haumaru, te http_anake me te same_site ka whakamahia hei whirihora i nga tautuhinga pihikete mo te waahi.

Kei raro nei he tauira o te konae sessions.php me te roanga o te huihuinga 120 hēkona, te whakamahi i nga konae kei roto i te raarangi framework/sessions:

<?php

use Illuminate\Support\Str;

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => env('SESSION_CONNECTION', null),
    'table' => 'sessions',
    'store' => env('SESSION_STORE', null),
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE'),
    'http_only' => true,

    'same_site' => 'lax',

];

Ka taea hoki e koe te whirihora i te waahi ma te whakamahi i nga taurangi taiao i roto i te konae .env. Hei tauira, hei whakamahi i te atekōkiri wātū pātengi raraunga me te rokiroki raraunga wātū ki tētahi ripanga wātū, me te momo MySQL-DB, ka taea e koe te whakarite i nga taurangi taiao e whai ake nei:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions

Tatūnga wātū Laravel

E toru nga huarahi hei mahi me nga raraunga huihuinga i Laravel: 

  • te whakamahi i tehelper della global session;
  • te whakamahi i te mata o te Session;
  • mā a Request instance

I enei keehi katoa, ko nga raraunga ka penapenahia e koe i roto i te waahi ka waatea i roto i nga tono ka tukuna e te kaiwhakamahi kotahi tae noa ki te paunga o te huihuinga, ka whakakorehia ranei a-ringa.

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.

Kaiawhina Wātū Ao

I roto i te Laravel, ma te whakamahi i te mahi Global Session Helper he huarahi watea ki te uru atu ki nga ratonga huihuinga e whakaratohia ana e te anga. Ka taea e koe te penapena me te tango i nga raraunga mai i te waahi i to tono. Anei he tauira mo te whakamahi i te session helper:

// Store data in the session
session(['key' => 'value']);

// Retrieve data from the session
$value = session('key');

// Remove data from the session
session()->forget('key');

// Clearing the Entire Session
session()->flush();

Ka taea hoki e koe te tuku i te uara o muadefinite hei tohenga tuarua ki te mahi session, ka whakahokia ki te kore e kitea te taviri kua tohua i te wahanga:

$value = session('key', 'default');

Tauira o Session Request

I roto i te Laravel, ko te tauira tono huihuinga e tohu ana ki tetahi mea e tohu ana i te tono HTTP me nga korero mo te tono, penei i te tikanga tono (GET, POST, PUT, etc.), URL tono, pane o te tono me te tinana tono. . Kei roto hoki nga momo tikanga ka taea te tiki me te raweke i enei korero.

Ko te tikanga ka uru koe ki te tauira o te Session Request na roto i te taurangi $request i roto i te tono Laravel. Hei tauira, ka taea te uru atu ki tetahi huihuinga ma te tauira tono ma te whakamahi i te mahi kaiawhina session().

use Illuminate\Http\Request;

class ExampleController extends Controller
{
   public function example(Request $request)
   {
       // Store data in the session using the put function
       $request->session()->put('key', 'value');

       // Retrieve data from the session using the get function
       $value = $request->session()->get('key');

       // Check if a value exists in the session using the has function:
       if ($request->session()->has('key')) {
           // The key exists in the session.
       }

       // To determine if a value exists in the session, even if its value is null:
       if ($request->session()->exists('users')) {
           // The value exists in the session.
       }

       // Remove data from the session using the forget function
       $request->session()->forget('key');
    }
}

I tenei tauira, ko te taurangi  $request he tauira o te karaehe Illuminate\Http\Request, e tohu ana i te tono HTTP o naianei. Te mahi session tono tauira ka whakahoki i tetahi tauira o te akomanga Illuminate\Session\Store, e whakarato ana i nga momo mahi mo te mahi me te waahi.

Ercole Palmeri

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.

Nga tuhinga o mua

Ka haina nga Kaiwhakaputa me te OpenAI i nga whakaaetanga hei whakahaere i te rere o nga korero i tukatukahia e Artificial Intelligence

I te Mane kua hipa, i panuitia e te Financial Times tetahi mahi me OpenAI. Ka raihana a FT i tana kairipoata o te ao…

30 Paenga-whāwhā 2024

Utu Ipurangi: Anei te pehea o nga Ratonga Rere e Utu ana koe mo ake tonu atu

E hia miriona nga taangata e utu ana mo nga ratonga rerema, e utu ana i nga utu ohaurunga ia marama. Ko te whakaaro noa ko koe…

29 Paenga-whāwhā 2024

Kei a Veeam te tautoko tino whanui mo te ransomware, mai i te whakamarumaru ki te whakautu me te whakaora

Ka whakarato tonu a Coveware na Veeam i nga ratonga whakautu mai i nga aitua. Ka tukuna e Coveware nga mahi whakawai me te whakatikatika…

23 Paenga-whāwhā 2024

Hurihuri Kakariki me te Mamati: He pehea te Huringa Matapae i te Hurihanga i te Ahumahi Hinu me te Hau

Ko te tiaki matapae kei te huri haere i te waahanga hinu me te hau, me te huarahi auaha me te kaha ki te whakahaere tipu.…

22 Paenga-whāwhā 2024