styde/html

快速构建表单字段、菜单、警告消息和其他视图组件

维护者

详细信息

github.com/StydeNet/html

源代码

问题

资助包维护!
sileence
Patreon

1.9.2 2023-03-17 08:07 UTC

README

Build Status Downloads Version License

此包包含一组用于生成常见HTML组件的Laravel PHP类,例如:

  • 菜单
  • 警告消息
  • 表单字段
  • 单选按钮和复选框集合

这是Laravel Collective HTML包的扩展,如果你正在开发自定义CMS、管理面板或任何需要动态生成HTML的项目,这将非常有用。

如何安装

  1. 安装此包的首选方式是通过Composer

Laravel 6.0用户 / Laravel 7.0用户:

运行composer require "styde/html=~1.8"或向你的composer.json文件添加"styde/html": "~1.8",然后运行composer update

Laravel 5.8用户:

运行composer require "styde/html=~1.7"或向你的composer.json文件添加"styde/html": "~1.7",然后运行composer update

Laravel 5.7用户:

运行composer require "styde/html=~1.6"或向你的composer.json文件添加"styde/html": "~1.6",然后运行composer update

Laravel 5.6用户:

运行composer require "styde/html=~1.5"或向你的composer.json文件添加"styde/html": "~1.5",然后运行composer update

Laravel 5.5用户:

运行composer require "styde/html=~1.4"或向你的composer.json文件添加"styde/html": "~1.4",然后运行composer update

  1. 接下来,将新提供者添加到config/app.php文件中的providers数组中(如果你使用Laravel 5.5与包自动发现,则此步骤不是必需的)
'providers' => [
    // ...
    Styde\Html\HtmlServiceProvider::class,
    // ...
],
  1. 此外,你还需要在app/Http/Kernel.php文件中注册\Styde\Html\Alert\Middleware::class中间件,在EncryptCookies中间件之前,对于Laravel 5.8及以后的版本,中间件需要在StartSession中间件之后注册。对于Laravel 5.4及以后的版本,它在$middlewareGroups数组中,对于旧版本(Laravel 5.3、5.2、5.1),它在$middleware数组中
// For Laravel 5.4 and later
protected $middlewareGroups = [
    // For Laravel 5.8 and later this needs to be after the StartSession middleware
    \Styde\Html\Alert\Middleware::class,
    //...
];

// For Laravel 5.3, 5.2, 5.1
protected $middleware = [
    //...
    \Styde\Html\Alert\Middleware::class,
    //...
];

此中间件是必要的,以便在每次请求完成后使警告消息在会话之间持久化。

请注意,以下全局别名将自动可用(你不需要添加它们)

Alert => Styde\Html\Facades\Alert
Field => Styde\Html\Facades\Field
Menu  => Styde\Html\Facades\Menu
Form  => Collective\Html\FormFacade
Html  => Collective\Html\HtmlFacade

如果你计划将访问处理器作为独立的类使用,你需要添加以下别名

'aliases' => [
    // ...
    'Access' => Styde\Html\Facades\Access::class,
    // ...
],

可选地,你也可以运行php artisan vendor:publish --provider='Styde\Html\HtmlServiceProvider'来发布config/html.php中的配置文件,并查看其选项和值。

用法

由于此包大量使用LaravelCollective/Html,因此其表单和字段的文档适用于此包。

沙盒

Build Status

此包旨在保持良好的文档和单元测试;然而,还有一个包含集成测试和几个路由的仓库,你可以克隆它以在浏览器中查看此包组件的实际操作,或者运行包含的集成测试。

查看沙盒仓库

您可以查看这些示例和测试,这可以作为学习如何使用此组件的另一种方式,除了阅读文档外。

配置

此包是在考虑配置的情况下创建的,如果您以前没有使用过此组件,可以简单地运行

php artisan vendor:publish --provider='Styde\Html\HtmlServiceProvider'

这将发布所有配置选项到:config/html.php 文件,您可以在其中探索并阅读注释,以了解更多关于配置选项及其值的信息。

注意:由于默认配置将合并到自定义配置中,因此您不需要在每个项目中发布整个配置;相反,只需设置您需要覆盖的值。

阅读此文档以了解此包提供的不同配置选项的更多信息。

表单字段构建器

字段构建器将允许您使用一行代码渲染每个表单字段所需的完整动态标记。

如果您以前使用过 Laravel Collective HTML 组件,您已经了解了基础知识,只需将别名“Form”替换为“Field”,例如,替换

{!! Form::text('name', 'value', $attributes) !!}

为这个

{!! Field::text('name', 'value', $attributes) !!}

了解更多关于字段构建器的信息

表单

此包向 Laravel Collective 的表单构建器添加以下功能

novalidate

禁用 HTML5 验证,适用于本地或开发环境

//config/html.php
return [
    'novalidate' => true
];

单选框

生成一组单选框:即

{!! Form::radios('status', ['a' => 'Active', 'i' => 'Inactive']) !!}

复选框

生成一组复选框

$options = [
    'php' => 'PHP',
    'js' => 'JS'
];
$checked = ['php'];
{!! Form::checkboxes('tags', $options, $checked) !!}

了解更多关于表单构建器的信息

警告消息

此组件将允许您生成复杂的警告消息。

Alert::info('Your account is about to expire')
    ->details('Renew now to learn about:')
    ->items(['Laravel', 'PHP', 'And more!'])
    ->button('Renew now!', url('renew'), 'primary');
{!! Alert::render() !!}

了解更多关于警告组件的信息

菜单生成器

菜单不是静态元素,有时您需要标记当前部分,翻译项目,生成动态 URL 或为某些用户显示/隐藏选项。

因此,您无需添加大量的 HTML 和 Blade 模板代码,而是可以使用此组件生成针对您首选 CSS 框架的动态菜单。

要生成菜单,只需在布局模板中添加以下代码

{!! Menu::make('items.here') !!}

了解更多关于菜单生成器的信息

HTML 构建器

此包扩展了 Laravel Collective 的 HTML 构建器的功能。

目前只有一个额外的 方法,但它非常有用!

生成 CSS 类

{!! Html::classes(['home' => true, 'main', 'dont-use-this' => false]) !!}

返回:class="home main"

了解更多关于 HTML 构建器的信息

辅助工具

除了使用 Alert::messageMenu::make 门面方法外,您还可以使用

alert('this is the message', 'type-of-message')
menu($items, $classes)

访问处理器

有时您想为某些用户显示或隐藏某些菜单项、表单字段等,而无需条件语句或太多额外的模板代码,只需将以下选项之一作为字段属性或菜单项值传递即可。

  1. 回调:一个函数,如果授予权限则返回 true,否则返回 false。
  2. 已登录:true:需要认证用户,false:需要访客用户。
  3. 角色:如果用户属于任何所需角色则返回 true。

例如:

{!! Field::select('user_id', null, ['roles' => 'admin']) !!}

了解更多关于访问处理器的信息

主题

有大量的 CSS 框架,此包是在考虑到这一点的情况下创建的,尽管 Bootstrap(版本 3 和 4)和 Bulma 已经内置,但我们计划在未来添加更多包(我们也邀请您合作)。

但是,您也可以轻松创建自己的主题,或修改现有主题

要更改和/或自定义主题,只需运行

php artisan vendor:publish

然后转到 config/html.php 并更改主题值

//config/html.php
return [
    'theme' => 'your-theme-here'
];

您可以在 resources/views/themes/ 中编辑和/或创建新模板

了解更多关于主题的信息

国际化

此包也是在考虑到国际化的情况下创建的。

如果您不打算使用此功能,您可以在配置中禁用翻译

//config/html.php
return [
    //…
    'translate_texts' => false
    //…
];

但如果您的项目需要实现超过一种语言,或者您希望将所有文本组织在 resources/lang/ 目录中而不是在控制器、视图等地方硬编码,请将 'translate_texts' 设置为 true

了解更多关于国际化的信息

更多文档

如果您深入查看源代码,会发现许多注释,以及在 spec/ 目录下的单元测试,您还可以克隆 集成测试仓库

如果您有其他问题,请随时通过 Twitter(@Sileence)联系我,或者发送电子邮件到 admin@styde.net

许可证

Styde\Html 包是开源软件,遵循 MIT 许可证。