spatie/laravel-html

流畅的HTML构建器

3.11.0 2024-07-16 07:58 UTC

README

Latest Version on Packagist MIT Licensed Total Downloads

此包帮助您使用干净的、简单的且易于阅读的API生成HTML。所有元素都可以动态生成并组合。HTML构建器可以帮助您根据所选模型、会话或默认值生成动态分配的表单元素。

支持我们

我们在创建一流的开放源代码包上投入了大量资源。您可以通过购买我们的付费产品之一来支持我们。

我们非常感激您从家乡寄来明信片,并说明您正在使用我们哪个包。您可以在我们的联系页面上找到我们的地址。我们将发布所有收到的明信片在我们的虚拟明信片墙上

明信片软件

您可以免费使用此包(它是MIT许可),但如果它进入了您的生产环境,我们非常感激您从家乡寄来明信片,说明您正在使用我们的哪个包。

我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。

所有明信片都发布在我们的网站上

安装

您可以通过composer安装此包

composer require spatie/laravel-html

并且可以选择注册一个外观的别名。

// config/app.php
'aliases' => [
    ...
    'Html' => Spatie\Html\Facades\Html::class,
];

用法

概念

元素——在Spatie\Html\Elements命名空间下的类通常通过一个Spatie\Html\Html构建器实例创建。

html()->span()->text('Hello world!');

元素属性和内容通过返回新实例的流畅方法进行修改。这意味着元素实例是不可变的。

$icon = html()->span()->class('fa');

$icon->class('fa-eye'); // '<span class="fa fa-eye"></span>'
$icon->class('fa-eye-slash'); // '<span class="fa fa-eye-slash"></span>'

元素类不对外部世界有任何了解。与其他概念(如请求和会话)的任何耦合都应在构建器类中发生,而不是在元素类中。

按照惯例,我们假设构建器方法将修改值以符合我们的利益(如在失败的表单请求中从会话中拉取旧值),而元素方法将是确定性的。

// This will try to resolve an initial value, and fall back to '[email protected]'
$email = html()->email('email', '[email protected]');

// This will always have '[email protected]' as it's value
$email = html()->email('email')->value('[email protected]');

升级

从v1到v2

版本2是在版本1的类型提示在某些情况下阻碍了包的发展(如多选,它需要一个值数组而不是假设的字符串)的情况下创建的。

幸运的是,通过在composer.json中提升版本号并运行composer update应该是非破坏性的。以下是一些需要注意的问题

  • 包现在默认包含一个html()函数,该函数返回一个Html构建器类的实例。如果您已定义自己的方法,则需要将其删除。
  • 包中删除了各种类型提示,如果您扩展了一个类以覆盖其方法,则需要相应地更新它们(一切仍然按预期工作!)

更改日志

请参阅更改日志以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现与安全相关的问题,请发送邮件至[email protected],而不是使用问题跟踪器。

鸣谢

关于Spatie

Spatie是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述在这里

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件