dluwang / breadcrumb
PHP Breadcrumb builder service
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: 2025-03-22 06:35:38 UTC
README
This is a package that provide service to build breadcrumb.
Installation
Laravel Version | Package Version |
---|---|
5.5 | 1.0.* |
5.6 | 1.1.* |
5.7 | 1.2.* |
5.8 | 1.3.* |
^6.0 | ^2.0 |
Installation
composer require dluwang/breadcrumb
Usage
Define Navigation
Dluwang/Breadcrumb/Crumb
is a class to define your crumb. The __construct
method has three mandatory arguments and one optional arguments
public function __construct($id, $label, $url, Crumb $prev = null)
$id
is the id of the crumb$label
is the label of the crumb$url
is the url of the crumb$prev
is the previous crumb of current crumb
All of the properties above can be accessed via the object instance.
Registering previous crumb There are two methods to register previous crumb.
-
Via constructor
$crumb = new Crumb('the-id', 'the-lable', 'the-url', $prev);
-
Via prev() method
$crumb->prev($prevCrumb);
Cast to array
$crumb->toArray(); results: [['crumb-1', 'crumb 1', '/crumb-1'], ['crumb-2', 'crumb 2', '/crumb-2']]
If your crumb is build in recursive manner, it will generate all of the prev crumb.
Define Breadcrumb
Dluwang/Breadcrumb/Breadcrumb
is an interface that act as the repository of Crumb. All Breadcrumb implementation should implements Dluwang/Breadcrumb/Breadcrumb
interface. Currently. this package provide in memory implementation which is located at Dluwang/Breadcrumb/InMemoryBreadcrumb
.
$breadcrumb = new InMemoryBreadcrumb()
Constructor has one optional argument which is the crumbs that registered.
Registering crumbs
$breadcrumb->register($crumb) // single crumb registration $navigator->register([$crumb1, $crumb2]) // mutiple crumbs
As mentioned above, the deferred child can be registered casually to navigator.
Retrieve crumb by id
$breadcrumb->crumb('crumb-id')
Global previous crumb
Sometimes you need to apply previous to all crumbs. Below is how to achieve that.
$global = new Crumb('the-id', 'the-label', 'the-url'); $breadcrumb->prev($global);
Integration
Currently, this package only integrated with laravel framework. The integration only register default implementation binding (in memory implementation) and provide an alias.
Tests
To run test, run this following command
vendor/bin/phpunit