viewflex / listo
扩展Ligero BREAD微框架,为Laravel添加支持复杂搜索架构的动态上下文UI控件。
Requires
- laravel/framework: ~5.2
- viewflex/ligero: ^1.1.4
This package is auto-updated.
Last update: 2024-09-13 14:11:23 UTC
README
扩展Ligero BREAD微框架,为Laravel添加支持复杂搜索架构的动态上下文UI控件。
快速链接
安装
通过Composer
$ composer require viewflex/listo
安装后,将 ListoServiceProvider 添加到Laravel的 config/app.php 文件中服务提供者列表。
Viewflex\Listo\ListoServiceProvider::class,
概述
架构
此包包装了 viewflex/ligero 包,通过添加支持复杂搜索架构的额外动态UI控件来增强Ligero BREAD微框架。它还包括自己的演示实现,其中包含提供的额外UI控件。应将此文档视为官方 Ligero文档 的补充。
实时演示
此包中提供了一个工作演示,即Items域,它通过Bootstrap.css在纯HTML中实现了一个非常简单的CRUD UI,但当然,发送到视图的生成的API数据可以使用任何所需的前端框架来展示。
Listo提供了表示和应用逻辑的完整分离,并以标准格式预打包所有必要的元素来输出具有动态UI组件的结果。使用 'Items > 显示为JSON' 菜单命令查看原始数据的外观。
使用演示作为模板
请参阅下面的 发布包文件 子部分,了解如何通过发布(复制)演示并对其进行定制来快速构建新的域。
演示API端点
除了演示中使用的UI控制器外,还有一个现成的上下文和API控制器,为同一Items域提供API路由。可以使用 ContextApiController 包来通过路由参数(键入到配置的 $contexts 数组)为任意数量的域上下文提供服务。
Ligero增强
Listo向Ligero包中已有的UI元素添加了一些新的UI元素。请参阅Ligero文档了解如何配置和使用动态UI控件。
此包还提供了额外的可高度配置的动态查询控件,包括
- 面包屑
- 查询菜单
- 排序菜单
这些是升级后的接口,以及添加到它们的方法
配置 PublisherConfigInterface
此包的 Config/listo.php 文件为 BasePublisherConfig 中的全局设置提供默认值,可以通过 artisan 命令发布到Laravel的 config 目录进行定制(请参阅下面的 定制 部分)。从Ligero升级到Listo时,请注意,现在将使用此配置文件而不是 ligero.php 配置文件。
域配置
面包屑
getBreadcrumbsConfig() setBreadcrumbsConfig($breadcrumbs_config)
查询菜单
getQueryMenusConfig() setQueryMenusConfig($query_menus_config)
排序菜单
getSortMenuConfig() setSortMenuConfig($sort_menu_config)
发布者 PublisherInterface
原始数据
获取用于附加动态UI控件的附加数据。
getBreadcrumbs()
getQueryMenus()
getSortMenu()
发布者API PublisherApiInterface
原始数据
获取用于附加动态UI控件的附加数据。
getBreadcrumbs()
getQueryMenus()
getSortMenu()
仓库 PublisherRepositoryInterface
菜单构建
此命令支持为单个列生成查询菜单,返回 query(在当前查询的上下文中)或 global(新鲜搜索)范围内的不同列值列表。支持的列类型:string、number 和 boolean。
distinctColumn($name = 'id', $scope = 'query', $type = 'string')
多记录列表操作
支持的其他列表操作
- 排序升高
- 排序降低
- 显示
- 隐藏
定制
此软件包附带一个演示域名“Items”,该域名提供了同时具有UI控制器和API控制器的域发布的示例。此演示可以不使用php artisan vendor:publish来复制文件进行修改,但要玩转“Items”演示域名或为您的应用程序创建新域名,只需使用带有listo标签的publish命令(如下文所述)。
复制并重命名您需要的演示文件,并更改类名,以实现自定义域的发布者。复制并重命名资源文件(视图和语言),并根据需要进行自定义。
发布包文件
软件包服务提供者配置artisan以使用标签发布特定的文件组。此软件包中有几个选项可用。
路由
运行此命令以将routes.php文件发布到项目的publish/viewflex/listo目录以进行自定义
php artisan vendor:publish --tag='listo-routes'
配置
运行此命令以将listo.php配置文件发布到项目的config目录以进行自定义
php artisan vendor:publish --tag='listo-config'
资源
运行此命令以发布演示UI的blade模板以及软件包消息和UI字符串的语言文件
php artisan vendor:publish --tag='listo-resources'
路由,演示迁移和 Seeder
运行此命令以安装“Items”演示域的迁移和 Seeder
php artisan vendor:publish --tag='listo-data'
发布演示迁移和 Seeder 后,运行迁移
php artisan migrate
然后运行 Seeder
php artisan db:seed --class="ListoSeeder"
路由,配置,资源,演示迁移和 Seeder
使用此命令发布配置,演示视图和语言文件以进行修改。演示迁移和 Seeder 也复制到正确的目录
php artisan vendor:publish --tag='listo'
扩展或装饰基类
Listo 的架构基于类类型的独特模式,每个模式都由一个接口定义;由于类以抽象类型相互关联,因此您可以轻松地替换自己的自定义类,前提是它们实现了相同的接口。实际上,Listo 遵循与它扩展的 Ligero 软件包相同的策略模式。
自定义类命名空间
与 publish/viewflex/listo 目录相对应的 Viewflex\Listo\Publish 命名空间被软件包识别,并旨在组织您的自定义类。Items 演示类将被发布(复制)到该目录进行自定义。
测试
phpunit 测试可以按照在测试文档中描述的常规方式进行。
许可
此软件按MIT 许可证提供。
变更日志
发布版本在变更日志中跟踪。
