This is a package that provide service to build breadcrumb.
Laravel Version | Package Version |
---|---|
5.5 | 1.0.* |
5.6 | 1.1.* |
5.7 | 1.2.* |
5.8 | 1.3.* |
^6.0 | ^2.0 |
composer require dluwang/breadcrumb
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.
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);
Currently, this package only integrated with laravel framework. The integration only register default implementation binding (in memory implementation) and provide an alias.
To run test, run this following command
vendor/bin/phpunit