Composite pattern, Laravel módra

A SOLID elveket nem kevesen ismerik már, arról is hallotak sokan, hogy a controller-ünk ne legyen telezsúfolva funkcionális programkódokkal. Ezt eleinte, amikor MVC rendszert keztünk használi szinte mindenki figyelmen kívül hagyta, vagy nem is hallott róla, és elérhettük, hogy óriási, átláthatatlan metódusokat gyártottunk, egybe volt minden végrehajtandó feladat, de azért kicsit éreztük, hogy ez nem nagyon van jól.

Volt egy olyan mondás is, hogy “fat models, skinny controllers” (azaz kövér modelek – ebben legyen a lényeg, vékony controllerek – itt pedig csak a model hívásai..), sokat olvastam IRC-n jópár évvel ezelőtt, de ez is idejemúlt lett az idők során, és már több féle megoldás létezik kódunk funkcióinak szeparálására, ezek közül az egyik a Composite pattern használata.

LDAP Autentikáció Laravel-es projectünkben

Nagy szerencsénk van, ha LDAP autentikációt kell megvalósítanunk, és Laravel keretrendszert lehet használnuk. Két csomag lesz a segítségünkre, amellyel játszi könnyedséggel megvalósíthatjuk az autentikációt.

Gyorstipp – Felhasználó kiléptetés inaktivitás miatt

Normál esetben, ha elévül a session cookie-nk, akkor a belépett felhasználó a következő request-kor már nem lesz bejelentkezve. Mi van akkor, ha ezt az idő intervallumot egyedileg akarjuk kezelni, pl. 20-30 percre beállítani. Tehát, ha ennyi ideig inaktivitás van az admin felületen, akkor biztonsági okokból kilépteti a felhasználót a rendszer.

Ezt egy route middleware beépítésével tudjuk megoldani, amely minden request lefutásakor meghívódik, és figyeli a legutolsó aktivitástól eltelt időt. Ha ez nagyobb mint az általunk beállított idő, akkor visszadob a login oldalra egy üzenettel.

Gyorstipp – Route-ok szétosztása fájlokra

Amikor route-okat határozunk meg, a framework induláskor ezeket egyesével beolvassa, és értelmezi. Ha elég sok ilyen route-unk van akkor az indulás lelassulhat igaz csak ms-ban mérve, ami az egész rendszerünk lassulását eredményezheti. Egy ötlet mivel lehet a betöltött route-ok számát csökkenteni:

Paginált rekorok cachelése

Az alábbi módon megoldhatjuk, hogy felsorolt cikkeink oldalanként legyenek gyorstárazva, amelyhez kicsit át kell alakítanunk az Eloquent beépített paginate() megoldását, egy egyedi megoldássá.