soflomo / common
包含Soflomo公共类的实用模块
Requires
- php: >=5.3.3.
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2024-09-14 14:23:47 UTC
README
Soflomo\Common
是一个小型实用模块,包含一些辅助类。其目的是为许多不同项目提供一些插件/辅助类,以实现一些通用功能。
目前,它提供了以下类
- 接受控制器插件,用于检查请求中的特定内容类型
- 附件控制器插件,用于在响应中发送文件作为附件
- 版本视图助手,从git加载应用程序版本作为公共资源的缓存破坏者
安装
Soflomo\Common
通过composer提供。将 "soflomo/common" 添加到您的 composer.json 列表中。在开发 Soflomo\Common
时,您可以指定最新可用的版本
"soflomo/common": "dev-master"
在您的 config/application.config.php
文件中启用该模块。将 Soflomo\Common
添加到已启用模块的列表中。
使用方法
以下为每个辅助类的使用示例。
接受控制器插件
假设您向 /books/123
的 uri 发起了删除请求。一个 AJAX 请求可能期望得到一个 200 OK 响应和消息体,而对于正常请求,您希望重定向到 /books
。
// Remove the book with id 123
if ($this->accept('application/json')) {
return new JsonModel(array(
'status' => 'success',
'book' => array(
'id' => 123
)
));
}
return $this->redirect()->toRoute('books');
附件控制器插件
您创建了一个PDF文件,并希望让用户下载该文件。
return $this->attachment()
->fromFile('data/invoice/123.pdf', 'Invoice 123.pdf', 'application/pdf');
可用方法有 fromFile($path, $name=null, $type=null, $disposition=null)
和 fromBlob($blob, $name, $type=null, $disposition=null)
。尚未实现 fromStream()
方法,但在未来的版本中计划实现。
版本视图助手
对于所有样式、图像和javascript文件,新部署的版本可能已更改,但可用在相同的URI下。您希望作为一个缓存破坏机制强制重新加载,但又不希望每次都手动更新版本。
此视图助手使用 git describe --always
从git加载版本描述。对于标签,它将返回标签(例如,v.1.0.4
)。如果没有检出标签(例如,在您的预发布环境中),它将加载混合版本(例如,v1.0.4-14-g2414721
或当没有任何标签时 g2414721
)。版本可以作为查询字符串附加:css/style.css?v1.0.4
<?php echo $this->headLink()
->appendStylesheet($this->basePath() . 'css/style.css?' . $this->version()); ?>