efureev/php-type-normalizer
Composer 安装命令:
composer require efureev/php-type-normalizer
包简介
Normalize any types
关键字:
README 文档
README
Description
It transforms mixed types into you need.
Install
For php >= 8.2
composer require efureev/php-type-normalizer "^1.0"
Basic Using
TypeNormalizer::toInt('1') // 1 TypeNormalizer::toBool('1') // true TypeNormalizer::toFloat('1.2') // 1.2 TypeNormalizer::toString(true) // 'true'
Using with Middleware
Middleware may be any callable variable.
TypeNormalizer::toInt(' -132323 ', 'abs'); // 132323 TypeNormalizer::toInt(' -2 ', 'abs', ['pow', 2]); // 4 TypeNormalizer::toString(' test ', 'trim', 'mb_strtoupper'); // 'TEST' TypeNormalizer::toString(null, static fn(string $item) => '<none>'); // '<none>'
Middleware may be defined with params:
TypeNormalizer::toInt(' -2 ', 'abs', ['pow', 2]); // 4 TypeNormalizer::toInt(' -2 ', 'abs', [fn(int $item, int $plus) => pow($item, 2) + $plus, 1]); // 5
Transformation Map
Integer
TypeNormalizer::toInt(1) // 1 TypeNormalizer::toInt(211) // 211 TypeNormalizer::toInt('211') // 211 TypeNormalizer::toInt(' 211 ') // 211 TypeNormalizer::toInt('1') // 1 TypeNormalizer::toInt('true') // 1 TypeNormalizer::toInt(' true ') // 1 TypeNormalizer::toInt(true) // 1 TypeNormalizer::toInt(1.00) // 1 TypeNormalizer::toInt('1.00') // 1 TypeNormalizer::toInt(false) // 0 TypeNormalizer::toInt(' false ') // 0 TypeNormalizer::toInt(' 0 ') // 0 TypeNormalizer::toInt(0) // 0 TypeNormalizer::toInt('') // 0 TypeNormalizer::toInt(' ') // 0 TypeNormalizer::toInt(null) // 0 TypeNormalizer::toInt('hello') // exception TypeNormalizer::toInt('1.2') // exception TypeNormalizer::toInt(1.2) // exception
Boolean
TypeNormalizer::toBool(1) // true TypeNormalizer::toBool(' 1 ') // true TypeNormalizer::toBool(true) // true TypeNormalizer::toBool(' true ') // true TypeNormalizer::toBool(' 1.00 ') // true TypeNormalizer::toBool(1.00) // true TypeNormalizer::toBool(0) // false TypeNormalizer::toBool(false) // false TypeNormalizer::toBool(' false ') // false TypeNormalizer::toBool(' 0 ') // false TypeNormalizer::toBool(' 0.0 ') // false TypeNormalizer::toBool('') // false TypeNormalizer::toBool(' ') // false TypeNormalizer::toBool(null) // false TypeNormalizer::toBool('hello') // exception TypeNormalizer::toBool(1.2) // exception TypeNormalizer::toBool(22) // exception TypeNormalizer::toBool('22') // exception TypeNormalizer::toBool(' 0. 00') // exception
Float
TypeNormalizer::toFloat(1) // 1 TypeNormalizer::toFloat(' 1 ') // 1 TypeNormalizer::toFloat(' -132323 ') // -1 TypeNormalizer::toFloat(true) // 1 TypeNormalizer::toFloat(' true ') // 1 TypeNormalizer::toFloat(' 1.00 ') // 1 TypeNormalizer::toFloat(' 21.21 ') // 21.21 TypeNormalizer::toFloat(1.00) // 1 TypeNormalizer::toFloat(0) // 0 TypeNormalizer::toFloat(false) // 0 TypeNormalizer::toFloat(' false ') // 0 TypeNormalizer::toFloat(' 0 ') // 0 TypeNormalizer::toFloat(' 0.0 ') // 0 TypeNormalizer::toFloat('') // 0 TypeNormalizer::toFloat(' ') // 0 TypeNormalizer::toFloat(null) // 0 TypeNormalizer::toFloat('hello') // exception
Test
composer test composer test-cover # with coverage
efureev/php-type-normalizer 适用场景与选型建议
efureev/php-type-normalizer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8.93k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2023 年 04 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「normalizer」 「types」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 efureev/php-type-normalizer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 efureev/php-type-normalizer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 efureev/php-type-normalizer 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Paramconverter, Normalizer and Form Type for Ramsey Uuid
Type transformers, normalizers and resolvers.
Data type classes for PHP
Easily switch between entry types in entries section
De/normalize business objects without tightly coupling them to your normalization format
Take an HTML validation error and get the normal form of it
统计信息
- 总下载量: 8.93k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-04-11