From b1fabd9ddbc94a355cb1b422b06feb9a9b874605 Mon Sep 17 00:00:00 2001 From: sherwinski Date: Wed, 1 May 2019 10:55:06 -0700 Subject: [PATCH] fix: deprecate domain sharding (#42) --- README.md | 1 + src/Imgix/UrlBuilder.php | 2 ++ tests/Imgix/Tests/UrlBuilderTest.php | 12 ++++++++++++ 3 files changed, 15 insertions(+) diff --git a/README.md b/README.md index 6c74bb4..14aed75 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ echo $builder->createURL("bridge.png", $params); ``` ## Domain Sharded URLs +**Warning: Domain Sharding has been deprecated and will be removed in the next major release** Domain sharding enables you to spread image requests across multiple domains. This allows you to bypass the requests-per-host limits of browsers. We diff --git a/src/Imgix/UrlBuilder.php b/src/Imgix/UrlBuilder.php index 74a7387..e9162ec 100644 --- a/src/Imgix/UrlBuilder.php +++ b/src/Imgix/UrlBuilder.php @@ -16,6 +16,8 @@ public function __construct($domains, $useHttps = false, $signKey = "", $shardSt if (!is_array($domains)) { $this->domains = array($domains); } else { + $warning_message = "Warning: Domain sharding has been deprecated and will be removed in the next major version."; + @trigger_error($warning_message, E_USER_DEPRECATED); $this->domains = $domains; } diff --git a/tests/Imgix/Tests/UrlBuilderTest.php b/tests/Imgix/Tests/UrlBuilderTest.php index e1ea7c6..abc1250 100644 --- a/tests/Imgix/Tests/UrlBuilderTest.php +++ b/tests/Imgix/Tests/UrlBuilderTest.php @@ -163,5 +163,17 @@ public function test_invalid_domain_array() { $builder = new UrlBuilder(array("demos.imgix.net","demos.imgix.net-"), true, "", ShardStrategy::CYCLE, false); } + public function test_deprecation_warning() { + # Tests for deprecation warning using a custom error handler + # as the warning is typically suppressed to prevent polluting + # error logs + set_error_handler(function($errno, $errstr, $errfile, $errline) { + $warning_message = "Warning: Domain sharding has been deprecated and will be removed in the next major version."; + $this->assertEquals($warning_message, $errstr); + $this->assertEquals(E_USER_DEPRECATED, $errno); + }, E_USER_DEPRECATED); + + $builder = new UrlBuilder(array("demos.imgix.net","demos.imgix.net"), true, "", ShardStrategy::CYCLE, false); + } } ?>