Skip to content

Commit 109c16e

Browse files
committed
Added the UrlResolver class to customize the way to resolve the urls #6
1 parent 2bc802e commit 109c16e

File tree

2 files changed

+41
-24
lines changed

2 files changed

+41
-24
lines changed

Embed/Url.php

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace Embed;
66

77
class Url {
8+
public static $resolver = 'Embed\\UrlResolver';
89
private $result;
910
private $info;
1011
private $url;
@@ -50,32 +51,11 @@ public function __wakeup () {
5051
private function resolve () {
5152
UrlJsRedirect::resolve($this);
5253

53-
$connection = curl_init();
54+
$resolver = static::$resolver;
5455

55-
curl_setopt_array($connection, array(
56-
CURLOPT_URL => $this->url,
57-
CURLOPT_RETURNTRANSFER => true,
58-
CURLOPT_FOLLOWLOCATION => true,
59-
CURLOPT_MAXREDIRS => 20,
60-
CURLOPT_CONNECTTIMEOUT => 10,
61-
CURLOPT_TIMEOUT => 10,
62-
CURLOPT_SSL_VERIFYPEER => false,
63-
CURLOPT_SSL_VERIFYHOST => false,
64-
CURLOPT_ENCODING => '',
65-
CURLOPT_AUTOREFERER => true,
66-
CURLOPT_USERAGENT => 'Embed PHP Library'
67-
));
68-
69-
$content = curl_exec($connection);
70-
$this->result = curl_getinfo($connection);
71-
72-
if ($content === false) {
73-
$this->result['error'] = curl_error($connection);
74-
$this->result['error_number'] = curl_errno($connection);
75-
}
76-
77-
curl_close($connection);
56+
list($content, $result) = $resolver::resolve($this->url);
7857

58+
$this->result = $result;
7959
$this->result['starting_url'] = $this->url;
8060

8161
$this->parseUrl($this->result['url']);

Embed/UrlResolver.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
/**
3+
* Default class to resolve urls
4+
*/
5+
namespace Embed;
6+
7+
class UrlResolver {
8+
public static function resolve ($url) {
9+
$connection = curl_init();
10+
11+
curl_setopt_array($connection, array(
12+
CURLOPT_URL => $url,
13+
CURLOPT_RETURNTRANSFER => true,
14+
CURLOPT_FOLLOWLOCATION => true,
15+
CURLOPT_MAXREDIRS => 20,
16+
CURLOPT_CONNECTTIMEOUT => 10,
17+
CURLOPT_TIMEOUT => 10,
18+
CURLOPT_SSL_VERIFYPEER => false,
19+
CURLOPT_SSL_VERIFYHOST => false,
20+
CURLOPT_ENCODING => '',
21+
CURLOPT_AUTOREFERER => true,
22+
CURLOPT_USERAGENT => 'Embed PHP Library'
23+
));
24+
25+
$content = curl_exec($connection);
26+
$result = curl_getinfo($connection);
27+
28+
if ($content === false) {
29+
$result['error'] = curl_error($connection);
30+
$result['error_number'] = curl_errno($connection);
31+
}
32+
33+
curl_close($connection);
34+
35+
return [$content, $result];
36+
}
37+
}

0 commit comments

Comments
 (0)