pangora/classnames

优雅的条件类列表构建器

1.0.1 2021-02-18 12:35 UTC

This package is auto-updated.

Last update: 2024-09-18 20:20:18 UTC


README

Classnames banner

PHP 的 Classnames

Latest Version on Packagist Build Status Total Downloads

此软件包复制了流行的 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)。有关更多信息,请参阅许可文件