From 0d9eba032aa9cee1641fda3718c01c647d666d43 Mon Sep 17 00:00:00 2001 From: Vladyslav Pozdnyakov Date: Mon, 22 Jul 2019 11:29:56 +0300 Subject: [PATCH] Add ability to use base image url in builder factory --- lib/Thumbor/Url/BuilderFactory.php | 18 ++++++++++++++++++ tests/Thumbor/Url/BuilderFactoryTest.php | 13 +++++++++++++ 2 files changed, 31 insertions(+) diff --git a/lib/Thumbor/Url/BuilderFactory.php b/lib/Thumbor/Url/BuilderFactory.php index 8ab162b..c0ddecb 100644 --- a/lib/Thumbor/Url/BuilderFactory.php +++ b/lib/Thumbor/Url/BuilderFactory.php @@ -24,6 +24,11 @@ class BuilderFactory private $server; private $secret; + /** + * @var string + */ + private $baseUrl; + /** * @param string $server * @param string|null $secret @@ -44,12 +49,25 @@ public function __construct($server, $secret=null) $this->secret = $secret; } + /** + * @param $url + * @return $this + */ + public function baseUrl($url) + { + $this->baseUrl = $url; + return $this; + } + /** * @param string $original * @return Builder */ public function url($original) { + if (!is_null($this->baseUrl)) { + $original = "{$this->baseUrl}/$original"; + } return Builder::construct($this->server, $this->secret, $original); } } diff --git a/tests/Thumbor/Url/BuilderFactoryTest.php b/tests/Thumbor/Url/BuilderFactoryTest.php index 06d3ba0..8ecf522 100644 --- a/tests/Thumbor/Url/BuilderFactoryTest.php +++ b/tests/Thumbor/Url/BuilderFactoryTest.php @@ -19,4 +19,17 @@ public function testUrl() $this->assertEquals($expected, $builder); } + + public function testBaseUrl() + { + $server = 'http://thumbor.example.com'; + $secret = 'butts'; + $baseUrl = 'http://example.com'; + $original = 'llamas.jpg'; + + $builder = BuilderFactory::construct($server, $secret)->baseUrl($baseUrl)->url($original); + $expected = Builder::construct($server, $secret, "$baseUrl/$original"); + + $this->assertEquals($expected, $builder); + } }