--- title: Laravel [07] (Cau [caché] de vistes.) tags: daw, Laravel, testing, M7 --- <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Licencia de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br />Este obra está bajo una <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional</a>. [Enllaç a Hackmk.io](https://hackmd.io/@JdaXaviQ/rJm54AeVh) ![](https://i.imgur.com/cx1hBT9.jpg) ## Laravel [06] (Cau [caché] de vistes.). A Laravel, les vistes es compilen a partir de plantilles Blade just in time, aquesta característica que permet estalviar memòria pot tenir un impacte negatiu al rendiment de la nostra aplicació, d'altres vegades, el rendiment negatiu no es deu tant al procés de compilació de les plantilles com a la obtenció de les dades que hem de presentar. Una solució a ambdòs problemes pot consistir en precompilar prèviament les vistes i mantenir-les en caché. Podem realitzar una compilació prèvia de totes les vistes de la nostra aplicació amb la comanda d'artisan: > php artisan view:cache i també podem esborrar la caché amb la comanda complementària: > php artisan view:clear A Laravel, la caché de vistes és una eina molt útil per accelerar la generació de pàgines web i reduir el temps de càrrega de la teva aplicació. Això es deu al fet que la caché de vistes emmagatzema temporalment el contingut de la vista en memòria, en disc, en una base de dades, o en Redis de manera que no cal que Laravel la recopili cada vegada que es sol·licita. Per habilitar la caché de vistes en Laravel, només cal seguir uns pocs passos senzills. Primer, has de configurar el driver de caché a través del fitxer .env. Laravel suporta diversos drivers de caché, com Redis, Memcached, APC, i Fitxer, entre d'altres. Per exemple, si vols configurar el driver de caché de fitxer, pots establir la variable d'entorn CACHE_DRIVER a file. A continuació, has d'habilitar la caché de vistes a través del fitxer de configuració config/view.php. Aquí, establiràs el valor de cache a true per activar la caché de vistes. Un cop habilitada la caché de vistes, Laravel emmagatzemarà automàticament totes les vistes generades en memòria o en disc, segons la configuració del driver de caché. Això significa que si una vista ja ha estat generada anteriorment, Laravel la recuperarà de la caché en lloc de generar-la novament, el que accelerarà la càrrega de la pàgina web. Si necessites eliminar la caché de vistes manualment, pots fer-ho a través de la comanda php artisan view:clear. Aquesta comanda eliminarà tots els arxius de caché de vistes que s'hagin emmagatzemat en memòria o en disc. Podem emmagatzemar a la caché el resultat de vistes amb les seves dades corresponents modificant el mètode del controlador que retorna la vista en questió, per exemple, he modificat el controlador EstudiantController per a que desi en caché la vista 'estudiants.index': ```php= public function index() { if ( Cache::has('estudiants_index') ) { return Cache::get('estudiants_index'); } else { $estudiants = Estudiant::all(); $cachedData = view('estudiants.index')->with('estudiants', $estudiants)->render(); Cache::put('estudiants_index', $cachedData); return $cachedData; } } ``` Per defecte, Laravel estableix una caducitat de 60 minuts per a totes les vistes en caché. Això significa que després de 60 minuts, la vista es tornarà a generar i es guardarà de nou en caché. No obstant, si vols modificar la caducitat d'una vista específica, pots fer-ho utilitzant el mètode remember() del helper cache() de Laravel. Aquest mètode et permet emmagatzemar en caché una vista durant un període de temps específic. Per exemple, si vols emmagatzemar en caché una vista durant només 10 minuts, pots fer-ho amb el següent codi: ```php= return cache()->remember('nom_de_la_vista', 600, function () { return view('ruta_de_la_vista'); }); ``` La comanda: > php artisan cache:clear permet esborrar les dades de la caché.