styde / html
快速构建表单字段、菜单、警告消息和其他视图组件
Requires
- php: ^7.2|^8.0
- illuminate/translation: ^6.0|^7.0|^8.0
- laravelcollective/html: ^6.0
Requires (Dev)
- phpspec/phpspec: ~7.0
- dev-master
- 1.9.2
- 1.9.1
- 1.9.0
- 1.8.1
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.1
- 1.6.0
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0
- dev-develop
- dev-laravel6
- dev-laravel5.8
- dev-develop_field_refactor
- dev-laravel5.7
- dev-laravel5.6
- dev-laravel5.5
- dev-laravel5.4
- dev-laravel5.3
- dev-laravel5.1
This package is auto-updated.
Last update: 2024-09-17 11:17:15 UTC
README
此包包含一组用于生成常见HTML组件的Laravel PHP类,例如:
- 菜单
- 警告消息
- 表单字段
- 单选按钮和复选框集合
这是Laravel Collective HTML包的扩展,如果你正在开发自定义CMS、管理面板或任何需要动态生成HTML的项目,这将非常有用。
如何安装
- 安装此包的首选方式是通过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
。
- 接下来,将新提供者添加到
config/app.php
文件中的providers
数组中(如果你使用Laravel 5.5与包自动发现,则此步骤不是必需的)
'providers' => [ // ... Styde\Html\HtmlServiceProvider::class, // ... ],
- 此外,你还需要在
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,因此其表单和字段的文档适用于此包。
沙盒
此包旨在保持良好的文档和单元测试;然而,还有一个包含集成测试和几个路由的仓库,你可以克隆它以在浏览器中查看此包组件的实际操作,或者运行包含的集成测试。
您可以查看这些示例和测试,这可以作为学习如何使用此组件的另一种方式,除了阅读文档外。
配置
此包是在考虑配置的情况下创建的,如果您以前没有使用过此组件,可以简单地运行
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"
辅助工具
除了使用 Alert::message
和 Menu::make
门面方法外,您还可以使用
alert('this is the message', 'type-of-message')
menu($items, $classes)
访问处理器
有时您想为某些用户显示或隐藏某些菜单项、表单字段等,而无需条件语句或太多额外的模板代码,只需将以下选项之一作为字段属性或菜单项值传递即可。
- 回调:一个函数,如果授予权限则返回 true,否则返回 false。
- 已登录:true:需要认证用户,false:需要访客用户。
- 角色:如果用户属于任何所需角色则返回 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 许可证。