viewflex/listo

扩展Ligero BREAD微框架,为Laravel添加支持复杂搜索架构的动态上下文UI控件。

维护者

详细信息

github.com/viewflex/listo

源代码

问题

安装: 2

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

语言:CSS

1.0.1 2019-11-13 02:57 UTC

This package is auto-updated.

Last update: 2024-09-13 14:11:23 UTC


README

GitHub license

扩展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文档 的补充。

实时演示

demo screenshot

此包中提供了一个工作演示,即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(新鲜搜索)范围内的不同列值列表。支持的列类型:stringnumberboolean

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 许可证提供。

变更日志

发布版本在变更日志中跟踪。