Seamless management and comunication with phantomjs process from php
This package is auto-updated.
Last update: 2021-12-06 13:13:41 UTC
WIP - This project is under heavy development you can use it now, but be aware that everything can change at anytime.
Start a phantomjs process and control it from php. The top feature is the ability to communicate with a single phantomjs script from many php scripts.
Note: The project is NOT tested on windows and thus it might work only on unix systems
TODO: page api doc
PhnatomPhp supports different communication channel. A communication channel represents a way to communicate with the underlying phantomjs process. By default php and phantomjs communicate through pipes, but you can turn phantomjs in a real application waiting for any script to interact with it.
To do this just start a HttpClient with a given port and you are ready to play with:
use PhantomPhp\HttpClient; use PhantomPhp\PageManager; $client = new HttpClient(8080); $client->start(); // Now phantomjs is listening on port 8080 // As with the stream client you can start a pageManager based uppon this http client $pageManager = new PageManager($client); // Create a page named foo $page = $pageManager->createPage('foo'); $page->navigate('http://example.com'); // ....
If you leave this previous process opened and open another process, the other process is able to call phantomjs without starting a new client. To do this you just have to define a http channel for the same port:
use PhantomPhp\Communication\HttpRequest; use PhantomPhp\PageManager; $channel = new HttpRequest(8080); // and pass this channel to a new page manager $pageManager = new PageManager($client); // Get the page named foo created on the other process $page = $pageManager->getPage('foo'); // warning: getPage is not implemented yet $dom = $page->getDomContent(); // ....
- More end points for page api
- make the page high level synchronizable on demand (also on
$page->navigateto lower request count)
- Support PSR-7 request
- Support page cookies, proxy, viewport, ua, etc...
- Support default proxy, defualt ua, default viewport, etc...
- Test error
- File log