jerrylopez/classnames

PHP 中构建 HTML 类名字符串的工具

v0.1.1 2024-02-24 04:50 UTC

This package is auto-updated.

Last update: 2024-09-25 03:24:41 UTC


README

Classnames

PHP 中构建 HTML 类名字符串的工具。

安装

通过 Composer 安装此包

composer require jerrylopez/classnames

用法

连接类名

将多个类名字符串集合添加到数组中,将在输出中连接。

<?php

use function Jerrylopez\Classnames\{classnames}

?>

<div class="<?= classnames([
    'bg-blue md:px-6 md:py-6',
    'text-xl semibold',
]) ?>">
    ...
</div>


<!-- Output -->
<div class="bg-blue md:px-6 md:py-6 text-xl semibold">
    ...
</div>

基于条件包含类名

添加一个数组,其中类名作为键,返回条件为 true 的值,将在输出中包含类名。

<?php

use function Jerrylopez\Classnames\{classnames}

?>

<div class="<?= classnames([
    'bg-blue md:px-6 md:py-6',
    'text-xl semibold',
    ['bg-green' => $this->someMethodThatReturnsTrue()]
]) ?>">
    ...
</div>

<!-- Output -->
<div class="bg-blue md:px-6 md:py-6 text-xl semibold bg-green">
    ...
</div>

基于条件排除类名

添加一个数组,其中类名作为键,返回条件为 false 的值,将在输出中排除类名。

<?php

use function Jerrylopez\Classnames\{classnames}

?>

<div class="<?= classnames([
    'bg-blue md:px-6 md:py-6',
    'text-xl semibold',
    ['bg-green' => $this->someMethodThatReturnsFalse()]
]) ?>">
    ...
</div>

<!-- Output -->
<div class="bg-blue md:px-6 md:py-6 text-xl semibold">
    ...
</div>

使用别名

此工具还提供了一个别名 cn,可以作为 classnames 函数的简写。

<?php

use function Jerrylopez\Classnames\{cn}

?>

<div class="<?= cn([
    'bg-blue md:px-6 md:py-6',
    'text-xl semibold'
]) ?>">
    ...
</div>

<!-- Output -->
<div class="bg-blue md:px-6 md:py-6 text-xl semibold">
    ...
</div>

致谢

此包受到 JS 社区中的 clsx 包的启发。