jerrylopez / classnames
PHP 中构建 HTML 类名字符串的工具
v0.1.1
2024-02-24 04:50 UTC
Requires
- php: ^8.1.0
Requires (Dev)
- pestphp/pest: ^2.34
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 包的启发。