imbo / imbo-zf2
为 Zend Framework 2 优化的 Imbo 模块
Requires
- php: >=5.4.0
- imbo/imboclient: ~2.0
- zendframework/zend-modulemanager: ~2.2
- zendframework/zend-servicemanager: ~2.2
- zendframework/zend-view: ~2.2
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is auto-updated.
Last update: 2023-03-28 08:24:40 UTC
README
此模块引入了一个 Imbo 客户端 服务,以及一个视图辅助器,用于在 Zend Framework 2 应用程序中创建 Imbo 图片 URL。
安装
将 imbo/imbo-zf2-module
添加到您的 composer.json
文件中,并在您的 application.config.php
文件中启用该模块
<?php return array( 'modules' => array( 'Imbo', // ... ), // ... );
配置
该模块有一些配置选项需要设置,所有选项都在配置数组的 imboModule
键下。
客户端配置
要配置 ImboClient 实例,您需要指定一个或多个主机、用户和一对公钥/私钥
return array( 'imboModule' => array( 'imboClient' => array( 'host' => 'http://imboserver', // or 'host' => array('http://imboserver1', 'http://imboserver2'), 'user' => 'some-user', 'publicKey' => 'somepublickey', 'privateKey' => 'someprivatekey', ), // ... ), // ... );
视图辅助器转换预设
视图辅助器支持配置数组中指定的预设,如果您想更容易地访问自定义转换链
return array( 'imboModule' => array( 'viewHelperPresets' => array( 'graythumb' => function(ImboClient\Http\ImageUrl $url) { return $url->thumbnail()->desaturate(); }, ), // ... ), // ... );
下面是如何在视图脚本中触发这些预设的说明。
用法
通过初始化器注入
该模块附带一个控制器初始化器,它会查找实现 Imbo\Service\ImboClientAwareInterface
接口的控制台。每当找到这样的控制台时,都会调用 setImboClient()
方法,并使用从服务管理器获取的 ImboClient\ImboClient
实例。该接口还定义了一个 getImboClient()
方法,该方法应返回客户端实例。
该模块还包括一个特性,它实现了这两种方法,因此如果您的控制台需要访问 Imbo 客户端,您只需添加几行代码
<?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController, Imbo\Service\ImboClientAwareInterface, Imbo\Service\ImboClientAware; class IndexController extends AbstractActionController implements ImboClientAwareInterface { use ImboClientAware; public function indexAction() { $client = $this->getImboClient(); // ... } }
您需要做的只是让您的控制台实现该接口并使用 特性,然后 Zend Framework 会自动为您注入 Imbo 客户端。
客户端服务
服务简单地称为 ImboClient
,可以从主服务管理器中获取。
视图辅助器
视图辅助器可以在您的视图脚本中这样使用
<img src="<?= $this->imboUrl('imageid')->thumbnail() ?>">
有关可用转换的完整列表,请参阅 客户端文档。
转换预设
可以在视图脚本中通过指定视图辅助器的第二个参数来引用配置中指定的转换预设
<img src="<?= $this->imboUrl('imageid', 'preset') ?>">
请参阅上面配置部分中如何配置转换预设的说明。