pangora / classnames
优雅的条件类列表构建器
1.0.1
2021-02-18 12:35 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^3.16
README
PHP 的 Classnames
此软件包复制了流行的 JS 软件包 JedWatson/classnames 的功能,允许您使用字符串、可转换为字符串的对象和条件数组轻松构建 HTML 类列表,如下所示
Classnames::from( 'btn', ['btn-primary'], ['btn-secondary' => false], ['btn-wide' => true], new StringableObject('btn-lg') ); // => 'btn btn-primary btn-wide btn-lg'
安装
您可以通过 composer 安装此软件包
composer require pangora/classnames
用法
Classnames 通过静态 from
方法接受多个参数,并在构建类列表时尊重参数顺序。 from
方法不会删除重复项,但您可以使用静态 dedupeFrom
,它以相同的方式工作,同时还会删除重复项。
允许的参数类型包括
字符串
int
(将被转换为string
)- 任何实现魔法
__toString()
方法的“可转换为字符串”对象。 - 顺序数组
- 键表示值,值表示条件的关联数组。
其他类型的参数将被忽略,除了多维数组,它将抛出异常。
Classnames::from('btn btn-primary'); // => 'btn btn-primary' Classnames::from('btn', 'btn-primary'); // => 'btn btn-primary' Classnames::from(' lots of ', ' space '); // => 'lots of space' Classnames::from('btn', ['btn-primary']); // => 'btn btn-primary' Classnames::from([ 'btn' => false, 'btn-secondary' => false, 'btn-primary' => true, ]); // => 'btn btn-primary' Classnames::from( 'card', new StringableObject('card-lg') ); // => 'card card-lg'
您还可以使用 dedupefrom
删除类列表中的重复项
Classnames::dedupeFrom('a btn b btn c'); // => 'a btn b c'
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何安全相关的问题,请通过jarand@pangora.no 发送电子邮件,而不是使用问题跟踪器。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件。