Csatlakozz a Slack chatre

Egy hasznos dolog, amit Laraveltől függetlenül is felhasználhatsz akár más programozási nyelvekben is.

Hogy mik az Eventek, és hogyan tehetik jobbá/szebbé a kódodat? Íme.

Összeszedtem pár From Request használatával kapcsolatos trükköt, amire a munkám során jöttem rá. Form Request fájlok használata azért ajánlott, mert nem a controller fájlodat "terheled" a validációval, hanem kiszervezed egy dedikált helyre (SOC - separation of concerns), ami csak egy adott feladattal foglalkozik.

A dokumentáció részletesen tárgyalja a Model Observerek működését, amelyeket sok mindenre fel tudunk használni. A Observer egy olyan funkció, amely segítségével ha történik valami a modellünkkel, akkor meghívhatunk egyedi kódrészleteket. Alap esetben létrehozáskor, módosításkor és törléskor fut le egy esemény, amire “figyelni” tudunk, és a megfelelő kódot le tudjuk futtatni. De mi van akkor, ha pl. nekünk esedi modell eseményre van szükségünk, pl. egy cikk státusz állítására (1 – látszik, 0 – nem látszik az oldalon).

Az alap lapozó megoldás a Laravel-ben sok terhet levesz a vállunkról, mert nagyon egyszerűen használható: az Eloquent lekérdezésünket nem get() -el fejezzük be hanem paginate() metódussal, melynek paraméterként megadjuk az oldalanként megjelenő pl. cikkek számát. Ez esetben minden egyes lapozáskor az adatbázishoz nyúl a programunk, ami nem erőforrás kímélő megoldás. Lehetőségünk van egyedi lapozást létrehozni, amivel megoldható, hogy az egyes oldalak elemei egy cache bejegyzésbe kerüljenek, így máris gyorsabb lesz a programunk.

Összegyűjtöttem pár tippet csomag készítéshez, amelyeket csomagjaim készítse során használtam, és ezek a megoldások nincsenek dokumentálva, de jó ha tudunk róluk.

Az alábbi rövid how-to cikkben bemutatom egy megvalósítását annak, hogyan jelenítsünk meg letölthető fájlokat (pl. doc, pdf) úgy, hogy azok elérési útvonalai, nevei rejtve maradjanak.

Néhányunknak gondot okozhat, ha nem használjuk jól a composer program install és update parancsát, főleg ha többen is dolgozunk egy adott projecten. Hogy miért fontos, hogy melyiket mikor használjuk, alábbiakban szeretném összefoglalni.

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.