PHP code example of snapshotpl / lazy-container
1. Go to this page and download the library: Download snapshotpl/lazy-container library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
snapshotpl / lazy-container example snippets
// Build LazyLoadingValueHolderFactory as you want
$lazyLoadingFactory = new ProxyManager\Factory\LazyLoadingValueHolderFactory();
// Prepare you favorite container
$pimple = new Pimple\Container();
$pimple['service'] = function ($container) {
return new HeavyService($container->get('dependency'));
};
// Create map (service name => class name) where you choose which services should be lazy loaded
$classMap = ['service' => HeavyService::class];
// Put all things to LazyContainer
$container = new LazyContainer($pimple, $lazyLoadingFactory, $classMap);
// Use LazyContainer exactly same like other PSR-11 container (thanks for interface)
$service = $container->get('service');
// Now $service is a proxy, so HeavyService wasn't created yet
// After first usage of $service is real HeavyService!
$result = $service->doSomething();