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: | 2025-01-29 15:17:05 |
Package Statistics | |
---|---|
Total Downloads: | 86 |
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!