district5 / formatter
District5 格式化库
1.0.0
2024-04-29 06:23 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: 9.*
This package is auto-updated.
Last update: 2024-09-29 07:37:53 UTC
README
安装
使用 composer 将此库添加为项目依赖项。
composer require district5/formatter
用法
使用格式化器
调用格式化器只需一行代码
// single object for format $formatted = MyFormatter::formatSingle($model); // multiple objects for format $formatted = MyFormatter::formatMultiple($models);
创建格式化器
通过扩展 FormatterAbstract
并实现 formatSingle 函数来创建自己的格式化器。抽象类会自动提供 formatMultiple
功能。
use District5\Formatter\FormatterAbstract; class MyFormatter extends FormatterAbstract { public static function formatSingle($item, array $options = null) { return [ 'field1' => 'someValue', 'field2' => 5 ]; } }
FormatterAbstract
还包含一个辅助函数,用于更复杂的内容包含决策
use District5\Formatter\FormatterAbstract; class MyComplexFormatter extends FormatterAbstract { public static function formatSingle($item, array $options = null) { $formatted = array( 'id' => $item->getIdStr(), 'created' => $item->getCreatedDateMillis(), 'title' => $item->getTitle(), 'text' => $item->getText() ); if (false !== static::getOption('includeCoverImage', $options, false)) { $formatted['coverImage'] = $item->getCoverImagePath(); } if (false !== static::getOption('includeOwnerId', $options, false)) { $formatted['ownerId'] = $item->getUserId(true); } return $formatted; } }
可以使用以下方式调用
// single object for format $formatted = MyComplexFormatter::formatSingle( $model, [ 'includeCoverImage' => true ] ); // multiple objects for format $formatted = MyComplexFormatter::formatMultiple( $models, [ 'includeCoverImage' => true, 'includeOwnerId' => true ] );