malavehaxiel / html-grid
将网格功能添加到 styde-html 库的输入内容条目中
Requires
- php: ^7.2
- illuminate/translation: ^6.0
- laravelcollective/html: ^6.0
Requires (Dev)
- phpspec/phpspec: ~4.0
This package is not auto-updated.
Last update: 2024-09-20 17:22:02 UTC
README
本软件包包含一组 Laravel PHP 类,用于生成常见的 HTML 组件,例如
- 菜单
- 警告信息
- 表单字段
- 一组单选框和复选框
这是 Laravel Collective HTML 包 的扩展,如果你正在开发自定义 CMS、管理面板或任何需要动态生成 HTML 的项目,这将非常有用。
如何安装
- 安装此软件包的首选方式是通过 Composer
Laravel 5.8 用户:
通过运行 composer require "styde/html=~1.7"
或将 "styde/html": "~1.7"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.7 用户:
通过运行 composer require "styde/html=~1.6"
或将 "styde/html": "~1.6"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.6 用户:
通过运行 composer require "styde/html=~1.5"
或将 "styde/html": "~1.5"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.5 用户:
通过运行 composer require "styde/html=~1.4"
或将 "styde/html": "~1.4"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.4 用户:
通过运行 composer require "styde/html=~1.3"
或将 "styde/html": "~1.3"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.3 用户:
通过运行 composer require "styde/html=~1.2"
或将 "styde/html": "~1.2"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.2 用户:
通过运行 composer require "styde/html=~1.1"
或将 "styde/html": "~1.1"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
Laravel 5.1 用户:
通过运行 composer require "styde/html=~1.0"
或将 "styde/html": "~1.0"
添加到你的 composer.json
文件中,然后运行 composer update
进行安装。
- 接下来,将新的提供者添加到
config/app.php
文件中的providers
数组中(如果你使用 Laravel 5.5 且启用了包自动发现,此步骤不是必需的)
'providers' => [ // ... MalaveHaxiel\Html\HtmlServiceProvider::class, // ... ],
- 此外,你需要在
app/Http/Kernel.php
文件中注册\MalaveHaxiel\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 \MalaveHaxiel\Html\Alert\Middleware::class, //... ]; // For Laravel 5.3, 5.2, 5.1 protected $middleware = [ //... \MalaveHaxiel\Html\Alert\Middleware::class, //... ];
此中间件是必要的,以确保警告信息在会话之间持久化,在每个请求完成后。
请注意,以下全局别名将自动可用(你不需要添加它们)
Alert => MalaveHaxiel\Html\Facades\Alert Field => MalaveHaxiel\Html\Facades\Field Menu => MalaveHaxiel\Html\Facades\Menu Form => Collective\Html\FormFacade Html => Collective\Html\HtmlFacade
如果你打算将 访问处理器 作为独立类使用,你需要添加以下别名
'aliases' => [ // ... 'Access' => MalaveHaxiel\Html\Facades\Access::class, // ... ],
可选地,你也可以运行 php artisan vendor:publish --provider='MalaveHaxiel\Html\HtmlServiceProvider'
来发布 config/html.php
中的配置文件,并查看其选项和值。
用法
由于这个包大量使用LaravelCollective/Html,所以它的表单和字段文档适用于这个包。
沙箱
这个包旨在保持良好的文档和单元测试;然而,还有一个包含集成测试和几个路由的仓库,您可以克隆它来在浏览器中查看这个包组件的实际运行,或者运行包含的集成测试。
您可以查看这些示例和测试,作为了解如何使用此组件的另一种方式,而不仅仅是阅读文档。
配置
此包考虑到配置,如果您之前没有使用过此组件,您可以简单地运行
php artisan vendor:publish --provider='MalaveHaxiel\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需要访客用户。
- 角色:如果用户属于任何所需的角色。
例如:
{!! 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。
许可证
MalaveHaxiel\Html 包是开源软件,根据 MIT 许可证授权。