ui-awesome/html-helper

PHP的UI Awesome HTML辅助代码生成器。

0.2.0 2024-03-30 16:07 UTC

This package is auto-updated.

Last update: 2024-08-30 17:12:31 UTC


README

PHP的UI Awesome HTML辅助代码生成器。


PHPUnit Codecov Infection Psalm Psalm Coverage Style ci

HTML Helper是一个PHP库,简化了HTML元素的创建。它提供了一套类来生成HTML属性、编码内容、清理HTML内容等。

安装

安装此扩展的首选方式是通过Composer

运行以下命令:

composer require --prefer-dist ui-awesome/html-helper:^0.2

或将其添加到您的composer.json文件的require部分:

"ui-awesome/html-helper": "^0.2"

使用

使用

添加CSS类

可以使用CssClasses::class辅助器向HTML元素添加CSS类。

该方法接受三个参数

  • attributes: (数组): 元素的HTML属性。
  • classes: (数组|string): 要添加的CSS类。
  • overwrite: (bool): 是否覆盖class属性。默认为false
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\CssClasses;

private array $attributes = [];

$classes = CssClasses::add($this->attributes, ['btn', 'btn-primary', 'btn-lg']);

覆盖class属性

<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\CssClasses;

private array $attributes = ['class' => 'btn'];

$classes = CssClasses::add($this->attributes, ['btn-primary', 'btn-lg'], true);

将正则表达式转换为模式

可以使用Utils::class辅助器来标准化正则表达式。

该方法接受一个参数

  • regexp: (字符串): 要标准化的模式。
  • delimiter: (字符串): 要使用的分隔符。默认为null
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Utils;

$pattern = Utils::convertToPattern('/([a-z0-9-]+)/im'); // return: `([a-z0-9-]+)`

编码内容

可以使用Encode::class辅助器来编码HTML内容。

该方法接受三个参数

  • content: (字符串): 要编码的内容。
  • doubleEncode: (bool): 是否双倍编码内容。默认为true
  • charset: (字符串): 要使用的字符集。默认为UTF-8
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Encode;

$content = Encode::html('<script>alert("Hello, World!")</script>');

编码值

可以使用Encode::class辅助器来编码HTML值。

该方法接受三个参数

  • value: (字符串): 要编码的值。
  • doubleEncode: (bool): 是否双倍编码值。默认为true
  • charset: (字符串): 要使用的字符集。默认为UTF-8
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Encode;

$value = Encode::value('<script>alert("Hello, World!")</script>');

获取简短类名

可以使用Utils::class辅助器来获取简短类名。

该方法接受一个参数

  • class: (字符串): 要获取简短名的类名。
  • suffix: (字符串): 是否追加::class后缀。默认为true。如果为false,则方法将返回不带::class后缀的简短名。
  • lowercase: (bool): 是否将类名转换为小写。默认为false
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Utils;

$shortName = Utils::getShortClassName('UIAwesome\Html\Helper\Utils'); // return: `Utils::class`

生成可数数组名称

可以使用ArrayableName::class辅助器来生成可数数组名称。

该方法接受一个参数

  • name: (字符串): 要生成的名称。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Utils;

$name = Utils::generateArrayableName('name');

生成输入ID

可以使用Utils::class辅助器来生成输入ID。

该方法接受三个参数

  • fieldModel: (字符串): 字段模型的名称。
  • property: (字符串): 属性的名称。
  • charset: (字符串): 要使用的字符集。默认为UTF-8
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Utils;

$id = Utils::generateInputId('user', 'name');

生成输入名称

可以使用Utils::class辅助器来生成输入名称。

该方法接受三个参数

  • fieldModel: (字符串): 字段模型的名称。
  • property: (字符串): 属性的名称。
  • arrayable: (bool): 名称是否可数。默认为false
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Utils;

$name = Utils::generateInputName('user', 'name');

清理内容

可以使用Sanitize::class辅助器来清理HTML内容。

该方法接受一个参数

  • content: (...string|RenderInterface): 要清理的内容。它可以是一个字符串或实现RenderInterface::class的对象。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Sanitize;

$content = Sanitize::html('<script>alert("Hello, World!")</script>');

渲染HTML属性

可以使用Attributes::class辅助器以编程方式渲染HTML属性。

<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Attributes;

$attributes = Attributes::render(
    [
        'class' => 'btn btn-primary',
        'id' => 'submit-button',
        'disabled' => true,
    ]
);

渲染HTML类属性

可以使用CssClass::class辅助器来渲染class属性。

该方法接受一个参数

  • class: (字符串): 要渲染的类。
  • baseClass: (字符串): 要使用的基类。
  • inList: (数组): 需要验证的类列表。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\CssClass;

$class = CssClass::render(
    'yellow',
    'p-4 mb-4 text-sm text-%1$s-800 rounded-lg bg-%1$s-50 dark:bg-gray-800 dark:text-%1$s-400',
    ['blue', 'gray', 'green', 'red', 'yellow'],
);

渲染模板

可以使用 Template::class 辅助类来渲染模板。

该方法接受两个参数

  • template: (字符串): 要渲染的模板。
  • tokenValues: (数组): 在模板中要替换的标记值。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Template;

$template = '{{prefix}}\n{{tag}}\n{{suffix}}';
$tokenValues = [
    '{{prefix}}' => 'prefix',
    '{{tag}}' => '<div>content</div>',
    '{{suffix}}' => 'suffix',
];

$content = Template::render($template, $tokenValues);

\n 是换行符,用于在模板中分隔标记。

验证列表中的值

可以使用 Validator::class 辅助类来验证列表中的值。

该方法接受三个参数

  • value: (混合型): 要验证的值。
  • exceptionMessage: (字符串): 如果值不在列表中,抛出的异常信息。
  • list: (...字符串): 验证值的列表。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Validator;

$value = Validator::inList('php', 'The value is not in the list.', 'php', 'javascript', 'typescript');

验证可迭代值

可以使用 Validator::class 辅助类来验证可迭代值。如果值不可迭代或 null,该方法将抛出 InvalidArgumentException 异常。

该方法接受一个参数

  • value: (混合型): 要验证的值。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Validator;

$value = Validator::iterable([1, 2, 3]);

验证数值

可以使用 Validator::class 辅助类来验证数值。如果值不是数值或 null,该方法将抛出 InvalidArgumentException 异常。

该方法接受一个参数

  • value: (混合型): 要验证的值。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Validator;

$value = Validator::numeric(1);

验证标量值

可以使用 Validator::class 辅助类来验证标量值。如果值不是标量或 null,该方法将抛出 InvalidArgumentException 异常。

该方法接受一个参数

  • value: (...混合型): 要验证的值。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Validator;

$value = Validator::scalar('Hello, World!');

验证字符串值

可以使用 Validator::class 辅助类来验证字符串值。如果值不是字符串或 null,该方法将抛出 InvalidArgumentException 异常。

该方法接受一个参数

  • value: (混合型): 要验证的值。
<?php

declare(strict_types=1);

use UIAwesome\Html\Helper\Validator;

$value = Validator::string('Hello, World!');

测试

查看测试文档 了解有关测试的信息。

支持版本

PHP81

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。

我们的社交媒体

Twitter