This simple, self-contained library allows you to capture screenshots using PhantomJS.
The library is much inspired by Laravel Cashier's PDF generation process.
You can install this package through Composer. Edit your project's composer.json file to require engage/portrayal.
"require": {
"engage/portrayal": "dev-master"
}Now run composer update from the terminal, and you're good to go!
$capture = new \Engage\Portrayal\Capture;
$filename = $capture->snap('https://github.com/engagedc/Portrayal', sys_get_temp_dir());
// $filename = /var/folders/6_/htvcfzcd4cb_w9z6bgpmnx5h0000gn/T/d0582362c2ffbf50ee119e504bb64fdc6bba5abd.pngYou can adjust the timeout value by appending a third parameter to snap(...). E.g. 15 second timeout: $filename = $capture->snap('https://github.com/engagedc/Portrayal', sys_get_temp_dir(), 15);
