Articles

Dè a th’ ann an seiseanan ann an Laravel, rèiteachadh agus cleachdadh le eisimpleirean

Leigidh seiseanan Laravel leat fiosrachadh a stòradh, agus iomlaid a dhèanamh eadar iarrtasan san tagradh lìn agad. 

Tha seiseanan Laravel nan dòigh furasta air dàta a chumail a’ dol airson an neach-cleachdaidh gnàthach. Bheir an oideachadh seo bunait dhut airson a bhith ag obair le seiseanan ann an Laravel.

Ùine leughaidh tuairmseach: 5 minuti

Dè th’ ann an seisean Laravel

Ann an Laravel, tha seisean na dhòigh air fiosrachadh a stòradh, gus dèiligeadh gu ceart ri iarrtasan bho neach-cleachdaidh. Nuair a thòisicheas neach-cleachdaidh tagradh Laravel, thèid seisean a thòiseachadh gu fèin-ghluasadach airson an neach-cleachdaidh sin. Tha dàta an t-seisean air a stòradh air an fhrithealaiche agus thèid briosgaid bheag le aithnichear sònraichte a chuir gu brabhsair an neach-cleachdaidh gus an seisean aithneachadh.

Faodaidh tu seisean a chleachdadh gus dàta a stòradh a tha thu airson a chleachdadh thar iomadh duilleag no iarrtas. Mar eisimpleir, dh’ fhaodadh tu an seisean a chleachdadh airson dearbhadh luchd-cleachdaidh no fiosrachadh eile a stòradh a tha thu airson a chleachdadh tron ​​​​t-seisean air an tagradh agad.

Suidheachadh seisean Laravel

Gus seiseanan ann an Laravel a chleachdadh, feumaidh tu an comas a chuir san fhaidhle an toiseach config/session.php de rèiteachadh. Anns an fhaidhle seo tha e comasach crìochan rèiteachaidh a shuidheachadh co-cheangailte ri seiseanan. A leithid fad an t-seisein, an draibhear airson a chleachdadh airson dàta an t-seisein a stòradh, agus an àite stòraidh airson dàta an t-seisein. 

Tha na roghainnean rèiteachaidh a leanas aig an fhaidhle:
    • dràibhear: Sònraich an draibhear ro-sheiseandefideònach a chleachdadh. Bidh Laravel a’ toirt taic do ghrunn dhraibhearan seisean: faidhle, briosgaid, stòr-dàta, apc, memcached, redis, dynamodb agus array;
    • beatha: Sònraich an àireamh de gheàrr-chunntasan anns am feumar beachdachadh air an t-seisean dligheach;
    • crìochnachadh_on_dùin: Ma thèid a shuidheachadh gu fìor, thig an seisean gu crìch nuair a bhios brabhsair a' chleachdaiche dùinte;
    • Encrypt: tha fìor a' ciallachadh gun crioptaich am frèam dàta seisean mus tèid a stòradh;
    • faidhlichean: Ma thèid an dràibhear seisean faidhle a chleachdadh, sònraichidh an roghainn seo an t-àite stòraidh faidhle;
    • co-cheangailte: Ma thèid dràibhear seisean an stòr-dàta a chleachdadh, sònraichidh an roghainn seo an ceangal stòr-dàta ri chleachdadh;
    • Clàr: Ma thèid dràibhear seisean an stòr-dàta a chleachdadh, sònraichidh an roghainn seo clàr an stòr-dàta airson a chleachdadh gus dàta seisean a stòradh;
    • crannchuir: Sreath de luachan air an cleachdadh gus luach briosgaid ID seisean a thaghadh air thuaiream;
    • cookie: Tha an roghainn seo a' sònrachadh ainm a' bhriosgaid a thèid a chleachdadh gus ID an t-seisein a stòradh. Bithear a’ cleachdadh na roghainnean slighe, àrainn, tèarainte, http_only agus same_site gus na roghainnean briosgaid a rèiteachadh airson an t-seisein.

    Gu h-ìosal tha eisimpleir de fhaidhle sessions.php le fad seisean 120 diogan, cleachdadh fhaidhlichean a tha air an stòradh san eòlaire 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',
    
    ];

    Faodaidh tu cuideachd an seisean a rèiteachadh a’ cleachdadh caochladairean àrainneachd san fhaidhle .env. Mar eisimpleir, gus an draibhear seisean stòr-dàta a chleachdadh agus dàta seisean a stòradh ann an clàr seisean, le seòrsa MySQL DB, faodaidh tu na caochladairean àrainneachd a leanas a shuidheachadh:

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

    A 'stèidheachadh seisean Laravel

    Tha trì dòighean ann a bhith ag obair le dàta seisean ann an Laravel: 

    Leabhar-latha ùr-ghnàthachaidh
    Na caill na naidheachdan as cudromaiche mu ùr-ghnàthachadh. Clàraich gus am faighinn air post-d.
    • a' cleachdadh anhelper della global session;
    • a’ cleachdadh aghaidh an t-Seisein;
    • tro a Request instance

    Anns na cùisean sin uile, bidh an dàta a bhios tu a’ stòradh san t-seisean ri fhaighinn ann an iarrtasan às deidh sin a nì an aon neach-cleachdaidh gus an tig an seisean gu crìch no gus an tèid a sgrios le làimh.

    Neach-cuideachaidh Seisean Cruinneil

    Ann an Laravel, a 'cleachdadh a' ghnìomh Global Session Helper tha e na dhòigh goireasach faighinn gu na seirbheisean seisean a tha am frèam a’ toirt seachad. Leigidh e leat dàta a stòradh agus fhaighinn air ais bhon t-seisean san tagradh agad. Seo eisimpleir de mar a chleachdas tu am faidhle 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();

    Faodaidh tu cuideachd ro-luach a thoirt seachaddefinite mar an dàrna argamaid don ghnìomh session, a thèid a thilleadh mura lorgar an iuchair ainmichte san t-seisean:

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

    Mar eisimpleir Session Request

    Ann an Laravel, tha eisimpleir iarrtas seisean a’ toirt iomradh air nì a tha a’ riochdachadh iarrtas HTTP agus anns a bheil fiosrachadh mun iarrtas, leithid an dòigh tagraidh (GET, POST, PUT, msaa), URL iarraidh, cinn-cinn an iarrtais agus a’ bhuidheann iarrtais. . Tha grunn dhòighean ann cuideachd a dh'fhaodar a chleachdadh gus am fiosrachadh seo fhaighinn air ais agus a làimhseachadh.

    Mar as trice gheibh thu cothrom air eisimpleir an Session Request tron chaochladair $request ann an tagradh Laravel. Mar eisimpleir, faodar faighinn gu seisean tro eisimpleir iarrtas a’ cleachdadh gnìomh an neach-cuideachaidh 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');
        }
    }
    

    Anns an eisimpleir seo, an caochlaideach  $request tha e na eisimpleir den chlas Illuminate\Http\Request, a tha a’ riochdachadh an iarrtas HTTP gnàthach. An gnìomh session iarrtas eisimpleir a’ tilleadh eisimpleir den chlas Illuminate\Session\Store, a bheir seachad diofar dhleastanasan airson a bhith ag obair leis an t-seisean.

    Leughaidhean Co-cheangailte

    Ercole Palmeri

    Leabhar-latha ùr-ghnàthachaidh
    Na caill na naidheachdan as cudromaiche mu ùr-ghnàthachadh. Clàraich gus am faighinn air post-d.