From 6be36af4630ad7ba981fdbad652d65afb283abe5 Mon Sep 17 00:00:00 2001 From: Mihail Shumilov Date: Mon, 23 Oct 2017 16:51:52 +0300 Subject: [PATCH 1/5] add proxy support --- src/Casper.php | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/Casper.php b/src/Casper.php index e5fec51..90abc1a 100644 --- a/src/Casper.php +++ b/src/Casper.php @@ -36,6 +36,16 @@ class Casper private $statusText = ''; private $cookies = []; + private $proxy = [ + 'host' => false, + 'port' => false, + 'type' => 'manual', + 'user' => false, + 'pass' => false + ]; + + private $proxyIsSet = false; + public function __construct($path2casper = null, $tempDir = null) { if ($path2casper) { @@ -104,6 +114,24 @@ public function setUserAgent($userAgent) $this->userAgent = $userAgent; } + /** + * Add proxy usage + * + * @param $host + * @param $port + * @param string $type + * @param string $user + * @param string $pass + */ + public function setProxy($host, $port, $type = 'manual', $user = '', $pass = '') { + $this->proxyIsSet = true; + $this->proxy['host'] = $host; + $this->proxy['port'] = $port; + $this->proxy['type'] = $type; + $this->proxy['user'] = $user; + $this->proxy['pass'] = $pass; + } + /** * enable debug logging into syslog * @@ -205,6 +233,18 @@ public function start($url) }); casper.userAgent('$this->userAgent'); + +FRAGMENT; + + if($this->proxyIsSet){ + $fragment .= <<proxy['host']}','{$this->proxy['port']}','{$this->proxy['type']}','{$this->proxy['user']}','{$this->proxy['pass']}'); +FRAGMENT; + + } + + $fragment .= << Date: Mon, 23 Oct 2017 17:07:23 +0300 Subject: [PATCH 2/5] update composer json --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 7563688..1d06b27 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { - "name": "phpcasperjs/phpcasperjs", + "name": "mihailShumilov/phpcasperjs", "description": "Simple PHP wrapper for CasperJS", - "homepage": "https://github.com/alwex/php-casperjs", + "homepage": "https://github.com/mihailShumilov/php-casperjs", "keywords": ["phpunit", "test", "browser"], "type": "library", "license": "MIT", From be378163f790022323916b0b45ccc0548d391fee Mon Sep 17 00:00:00 2001 From: Mihail Shumilov Date: Mon, 23 Oct 2017 17:12:29 +0300 Subject: [PATCH 3/5] fix name --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 1d06b27..1db1ad8 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "mihailShumilov/phpcasperjs", + "name": "mihail-shumilov/phpcasperjs", "description": "Simple PHP wrapper for CasperJS", "homepage": "https://github.com/mihailShumilov/php-casperjs", "keywords": ["phpunit", "test", "browser"], From 493bd7c3e0269458965cf1199e5938ca769cbad4 Mon Sep 17 00:00:00 2001 From: Mihail Shumilov Date: Tue, 24 Oct 2017 20:21:16 +0300 Subject: [PATCH 4/5] prevent blocking --- src/Casper.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Casper.php b/src/Casper.php index 90abc1a..b970241 100644 --- a/src/Casper.php +++ b/src/Casper.php @@ -248,7 +248,8 @@ public function start($url) casper.start().then(function() { this.open('$url', { headers: { - 'Accept': 'text/html' + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', + 'AcceptEncoding':'gzip, deflate, br } }); }); From 2239567395e7a53a794cfbaa44435aa47ad84d60 Mon Sep 17 00:00:00 2001 From: Mihail Shumilov Date: Tue, 24 Oct 2017 20:31:28 +0300 Subject: [PATCH 5/5] fix mistake --- src/Casper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Casper.php b/src/Casper.php index b970241..1fa9a6f 100644 --- a/src/Casper.php +++ b/src/Casper.php @@ -249,7 +249,7 @@ public function start($url) this.open('$url', { headers: { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', - 'AcceptEncoding':'gzip, deflate, br + 'AcceptEncoding':'gzip, deflate, br' } }); });