josh / laravel-phantomjs
Use phantom-js in laravel
Installs: 22 171
Dependents: 0
Suggesters: 0
Security: 0
Stars: 42
Watchers: 2
Forks: 17
Open Issues: 2
Requires
- php: ^7.2
- josh/php-phantomjs: ^4
- laravel/framework: ^6
Requires (Dev)
- phpunit/phpunit: ^7.0
README
Laravel PhantomJs Client
Using php-phantomjs client in laravel
Requirement
Install
Via Composer
$ composer require josh/laravel-phantomjs
Config
Add the following provider to providers part of config/app.php
Josh\Component\PhantomJs\PhantomJsServiceProvider::class
and the following Facade to the aliases part
'PhantomJs' => Josh\Component\PhantomJs\Facade\PhantomJs::class
and then you can run vendor:publish command for generating phantomjs config file
$ php artisan vendor:publish --provider="Josh\Component\PhantomJs\PhantomJsServiceProvider"
Now you can config your phantomjs client in config/phantomjs.php
file
Basic Usage
The following illustrates how to make a basic GET request and output the page content:
On Load Finished
// Tells the client to wait for all resources before rendering $request = \PhantomJs::get('https://www.google.com/'); \PhantomJs::isLazy()->send($request);
// you can use Facade or app make function to use phantomjs // ex: app('phantomjs') or \PhantomJs $request = \PhantomJs::get('https://www.google.com/'); $response = \PhantomJs::send($request); if($response->getStatus() === 200) { // Dump the requested page content echo $response->getContent(); }
Saving a screen capture to local disk:
$request = \PhantomJs::createImage('https://www.google.com/', 'GET'); $request->setOutputFile(public_path('file.jpg')); $request->setViewportSize(800, 600); $request->setCaptureDimensions(800, 600, 0, 0); $response = \PhantomJs::send($request); if($response->getStatus() === 200) { // Dump the requested page content echo $response->getContent(); }
Outputting a page as PDF:
$request = \PhantomJs::createPdf('https://www.google.com/', 'GET'); $request->setOutputFile(public_path('document.pdf')); $request->setFormat('A4'); $request->setOrientation('landscape'); $request->setMargin('1cm'); $response = \PhantomJs::send($request); if($response->getStatus() === 200) { // Dump the requested page content echo $response->getContent(); }
License
The MIT License (MIT)