Skip to content

Commit fa45726

Browse files
committed
Merge pull request #7 from imgix/7-ixlib-param
Add the `ixlib` parameter to every request
2 parents a8ab87b + b6fa07c commit fa45726

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "imgix/imgix-php",
33
"description": "A PHP client library for generating URLs with imgix.",
44
"type": "library",
5+
"version": "1.0.5",
56
"keywords": [
67
"imgix"
78
],

src/Imgix/UrlBuilder.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44

55
class UrlBuilder {
66

7+
private $currentVersion = "1.0.5";
78
private $domains;
89
private $useHttps;
910
private $signKey;
1011
private $shardStrategy;
1112

1213
private $shardCycleNextIndex = 0;
1314

14-
public function __construct($domains, $useHttps = false, $signKey = "", $shardStrategy = ShardStrategy::CRC) {
15+
public function __construct($domains, $useHttps = false, $signKey = "", $shardStrategy = ShardStrategy::CRC, $includeLibraryParam = true) {
1516
if (!is_array($domains)) {
1617
$this->domains = array($domains);
1718
} else {
@@ -25,6 +26,7 @@ public function __construct($domains, $useHttps = false, $signKey = "", $shardSt
2526
$this->useHttps = $useHttps;
2627
$this->signKey = $signKey;
2728
$this->shardStratgy = $shardStrategy;
29+
$this->includeLibraryParam = $includeLibraryParam;
2830
}
2931

3032
public function setShardStrategy($start) {
@@ -52,6 +54,10 @@ public function createURL($path, $params=array()) {
5254
$domain = $this->domains[0];
5355
}
5456

57+
if ($this->includeLibraryParam) {
58+
$params['ixlib'] = "php-" . $this->currentVersion;
59+
}
60+
5561
$uh = new UrlHelper($domain, $path, $scheme, $this->signKey, $params);
5662

5763
return $uh->getURL();

tests/Imgix/Tests/UrlBuilderTest.php

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public function testUrlBuilderCycleShard() {
1919

2020
$domains = array("jackangers.imgix.net", "jackangers2.imgix.net", "jackangers3.imgix.net");
2121

22-
$ub = new URLBuilder($domains);
22+
$ub = new URLBuilder($domains, false, "", ShardStrategy::CRC, false);
2323
$ub->setShardStrategy(ShardStrategy::CYCLE);
2424

2525
for ($i = 0; $i < 100; $i++) {
@@ -34,7 +34,7 @@ public function testUrlBuilderCycleShard() {
3434
}
3535

3636
public function testExamplePlain() {
37-
$builder = new UrlBuilder("demos.imgix.net");
37+
$builder = new UrlBuilder("demos.imgix.net", false, "", ShardStrategy::CRC, false);
3838

3939
$params = array("w" => 100, "h" => 100);
4040
$url = $builder->createURL("bridge.png", $params);
@@ -43,7 +43,7 @@ public function testExamplePlain() {
4343
}
4444

4545
public function testExamplePlainHttps() {
46-
$builder = new UrlBuilder("demos.imgix.net");
46+
$builder = new UrlBuilder("demos.imgix.net", false, "", ShardStrategy::CRC, false);
4747

4848
$builder->setUseHttps(true);
4949
$params = array("w" => 100, "h" => 100);
@@ -53,7 +53,7 @@ public function testExamplePlainHttps() {
5353
}
5454

5555
public function testExamplePlainSecure() {
56-
$builder = new UrlBuilder("demos.imgix.net");
56+
$builder = new UrlBuilder("demos.imgix.net", false, "", ShardStrategy::CRC, false);
5757
$builder->setSignKey("test1234");
5858
$params = array("w" => 100, "h" => 100);
5959
$url = $builder->createURL("bridge.png", $params);
@@ -62,27 +62,36 @@ public function testExamplePlainSecure() {
6262
}
6363

6464
public function testWithFullyQualifiedUrl() {
65-
$builder = new UrlBuilder("demos.imgix.net", true);
65+
$builder = new UrlBuilder("demos.imgix.net", true, "", ShardStrategy::CRC, false);
6666
$builder->setSignKey("test1234");
6767
$url = $builder->createUrl("http://media.giphy.com/media/jCMq0p94fgBIk/giphy.gif");
6868

6969
$this->assertEquals("https://demos.imgix.net/http%3A%2F%2Fmedia.giphy.com%2Fmedia%2FjCMq0p94fgBIk%2Fgiphy.gif?&s=ffc3359566fe1dc6445ad17d17b98951", $url);
7070
}
7171

7272
public function testWithFullyQualifiedUrlWithSpaces() {
73-
$builder = new UrlBuilder("demos.imgix.net", true);
73+
$builder = new UrlBuilder("demos.imgix.net", true, "", ShardStrategy::CRC, false);
7474
$builder->setSignKey("test1234");
7575
$url = $builder->createUrl("https://my-demo-site.com/files/133467012/avatar icon.png");
7676

7777
$this->assertEquals("https://demos.imgix.net/https%3A%2F%2Fmy-demo-site.com%2Ffiles%2F133467012%2Favatar+icon.png?&s=f6a4e1504af365564014564f1d7e13de", $url);
7878
}
7979

8080
public function testWithFullyQualifiedUrlWithParams() {
81-
$builder = new UrlBuilder("demos.imgix.net", true);
81+
$builder = new UrlBuilder("demos.imgix.net", true, "", ShardStrategy::CRC, false);
8282
$builder->setSignKey("test1234");
8383
$url = $builder->createUrl("https://my-demo-site.com/files/133467012/avatar icon.png?some=chill&params=1");
8484

8585
$this->assertEquals("https://demos.imgix.net/https%3A%2F%2Fmy-demo-site.com%2Ffiles%2F133467012%2Favatar+icon.png%3Fsome%3Dchill%26params%3D1?&s=259b9ca6206721752ad7a3ce50f08dd2", $url);
8686
}
87+
88+
public function testInclusionOfLibraryVersionParam() {
89+
$builder = new UrlBuilder("demos.imgix.net", true);
90+
$url = $builder->createUrl("https://my-demo-site.com/files/133467012/avatar icon.png?some=chill&params=1");
91+
$composerFileJson = json_decode(file_get_contents("./composer.json"), true);
92+
$version = $composerFileJson['version'];
93+
94+
$this->assertEquals("https://demos.imgix.net/https%3A%2F%2Fmy-demo-site.com%2Ffiles%2F133467012%2Favatar+icon.png%3Fsome%3Dchill%26params%3D1?ixlib=php-" . $version, $url);
95+
}
8796
}
8897
?>

0 commit comments

Comments
 (0)