neighborhoods / imgproxy-client-component
生成 Imgproxy URL 的客户端组件
1.6.0
2021-08-31 21:11 UTC
Requires
- php: ^7.3
- neighborhoods/bakery: ^1.0
Requires (Dev)
- neighborhoods/buphalo: ^1.1
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-29 05:45:26 UTC
README
生成 Imgproxy
URL 的客户端组件
Imgproxy
是一个快速且安全的独立服务器,用于调整和转换远程图片
安装
通过 Composer
$ composer require neighborhoods/imgproxy-client-component
使用方法
基本 URL 应包含签名、调整大小参数和源 URL,例如
/%signature/%resizing_type/%width/%height/%gravity/%enlarge/plain/%source_url@%extension
/%signature/%resizing_type/%width/%height/%gravity/%enlarge/%encoded_source_url.%extension
每个字段的详细文档
<?php use Neighborhoods\ImgProxyClientComponent\Imgproxy\V1\Url protected $imgproxyUrl; protected $key; protected $salt; protected function buildSecureSignedPath(string $image) : string { $urlBuilder = $this->getImgproxyV1UrlBuilderFactory()->create(); $urlBuilder ->setImageUrl(https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/SpaceX_Starship_SN8_launch_as_viewed_from_South_Padre_Island.jpg/220px-SpaceX_Starship_SN8_launch_as_viewed_from_South_Padre_Island.jpg) ->setEnlarge(false) ->setFit('fill') ->setWidth(0) ->setHeight(0) ->setGravity('ce:0:0') ->setKey($this->getKey()) ->setSalt($this->getSalt()); $url = $urlBuilder->build(); return $this->getImgproxyUrl() . $url->getSecureSignedPath(); } public function setKey(string $imgproxyKey) : SenderInterface { if (null !== $this->key) { throw new \LogicException( 'Sender key is already set.' ); } $this->key = $imgproxyKey; return $this; } protected function getKey() : string { if (null === $this->key) { throw new \LogicException( 'Sender key has not been set.' ); } return $this->key; } public function setSalt(string $imgproxySalt) : SenderInterface { if (null !== $this->salt) { throw new \LogicException( 'Sender salt is already set.' ); } $this->salt = $imgproxySalt; return $this; } protected function getSalt() : string { if (null === $this->salt) { throw new \LogicException( 'Sender salt has not been set.' ); } return $this->salt; } public function setImgproxyUrl(string $imgproxyUrl) : SenderInterface { if (null !== $this->imgproxyUrl) { throw new \LogicException( 'Sender imgproxy url is already set.' ); } $this->imgproxyUrl = $imgproxyUrl; return $this; } protected function getImgproxyUrl() : string { if (null === $this->imgproxyUrl) { throw new \LogicException( 'Sender imgproxy url has not been set' ); } return $this->imgproxyUrl; }