trapvincenzo / static-view-cache by trapvincenzo

Static view cache for laravel 4
84
2
1
Package Data
Maintainer Username: trapvincenzo
Maintainer Contact: trapvincenzo@gmail.com (Vincenzo Trapani)
Package Create Date: 2014-12-16
Package Last Update: 2015-03-19
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-05-03 15:19:00
Package Statistics
Total Downloads: 84
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 2
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

#Static View Cache for Laravel4 (Blade template engine)

Suppose to include a view (with dynamic data) inside another view:

<ul>
	@include('cardetail', ['car' => $car])
</ul>

For this statement, the blade engine creates a cached file for the subview like this:

<ul>
	<?php echo $__env->make('car', $car, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>;
</ul>

This means that for every request of the page, the rendering code is executed.

##Loop The problem comes when the inclusion is made inside a loop. Executing the code at every iteration, can cause a big delay in the rendering of the page.

##Cached subview What the StaticViewCache does, is to save a cached version of the generated subview with the real data. Doing so, the code for the rendering will be executed just the first time (to create the cache).

##How to use To install the StaticViewCache as a Composer package, add this line to your composer.json:

"trapvincenzo/static-view-cache": "dev-master"

and update your vendor folder running the composer update command.

Register the service provider (app/config/app.php):

'providers' => array(
	...
	'Trapvincenzo\StaticViewCache\StaticViewCacheServiceProvider'
	...
)

Replace the @include statement with:

StaticViewCache::render($viewName, $id, $data , $path )

string $viewName view name

string $id unique identifier for the view (different for each iteration)

array $data data to use inside the view

[optional] string $path define path inside storage_folder().'/views/' (default 'static')

Enjoy!