dluwang / breadcrumb
PHP 面包屑构建服务
v2.0.0
2019-10-21 16:49 UTC
Requires
- tightenco/collect: ^6.0
Requires (Dev)
- fzaninotto/faker: ^1.7
- kastengel/packdev: 1.4.*
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.3
This package is auto-updated.
Last update: 2024-09-22 05:29:59 UTC
README
这是一个提供构建面包屑服务的包。
安装
安装
composer require dluwang/breadcrumb
用法
定义导航 Dluwang/Breadcrumb/Crumb
是一个用于定义面包屑的类。它的 __construct
方法有三个必填参数和一个可选参数
public function __construct($id, $label, $url, Crumb $prev = null)
$id
是面包屑的 id$label
是面包屑的标签$url
是面包屑的 URL$prev
是当前面包屑的前一个面包屑
以上所有属性都可以通过对象实例访问。
注册前一个面包屑 注册前一个面包屑有两种方法。
-
通过构造函数
$crumb = new Crumb('the-id', 'the-label', 'the-url', $prev);
-
通过 prev() 方法
$crumb->prev($prevCrumb);
转换为数组
$crumb->toArray(); results: [['crumb-1', 'crumb 1', '/crumb-1'], ['crumb-2', 'crumb 2', '/crumb-2']]
如果你的面包屑是递归构建的,它将生成所有前一个面包屑。
定义面包屑
Dluwang/Breadcrumb/Breadcrumb
是一个接口,作为 Crumb 的仓库。所有面包屑实现都应该实现 Dluwang/Breadcrumb/Breadcrumb
接口。目前,这个包提供了一个内存实现,位于 Dluwang/Breadcrumb/InMemoryBreadcrumb
。
$breadcrumb = new InMemoryBreadcrumb()
构造函数有一个可选参数,即已注册的面包屑。
注册面包屑
$breadcrumb->register($crumb) // single crumb registration $navigator->register([$crumb1, $crumb2]) // mutiple crumbs
如上所述,延迟子项可以随意注册到导航器。
通过 ID 获取面包屑
$breadcrumb->crumb('crumb-id')
全局前一个面包屑
有时你可能需要将前一个面包屑应用于所有面包屑。以下是如何实现的方法。
$global = new Crumb('the-id', 'the-label', 'the-url'); $breadcrumb->prev($global);
集成
目前,这个包只与 laravel 框架 集成。集成仅注册默认实现绑定(内存实现)并提供别名。
测试
要运行测试,请运行以下命令
vendor/bin/phpunit