Download the PHP package zschuessler/laravel-route-to-class without Composer
On this page you can find all versions of the php package zschuessler/laravel-route-to-class. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download zschuessler/laravel-route-to-class
More information about zschuessler/laravel-route-to-class
Files in zschuessler/laravel-route-to-class
Package laravel-route-to-class
Short Description A Laravel view composer that will convert the current route to a body class. 'admin/product/5/edit' becomes 'admin-product-edit'
License NLPL
Informations about the package laravel-route-to-class
Dynamic Body Classes for Laravel
Quickly add body classes to your Laravel app based on rules you set.
Example of implementations:
- Browsing as a guest might add
user-isGuest
as a class. - Browsing an admin panel might add
admin-panel
as a class. - All user profile routes might have
user-profile
as a class.
It's easy to write your own rules! You can either write your own generator classes or use the ad-hoc API by interacting with the library singleton directly.
Quickstart
Require the package in your composer setup.
Publish the configuration file
Run the following command in the root directory of your project:
Use In Layout
You can either use the included Blade directive, or access the Route2Class facade directly for outputting your classes.
Blade
Two important notes for using the Blade directive:
- The Blade directive will follow any caching solutions you have setup. This is great for production, but keep in mind on development you may be viewing cached classes when modifying generators.
- The Blade directive runs before all other view template code. As such, any calls to the Route2Class package in a view will not show up in your class list.
Facade
Facades are not cached in the manner Blade directives are, making them great for development environments. And because we aren't using a Blade directive, you can modify classes and generators within view templates too.
Use it in any of your views like so:
Implement Your Own Rules
You can implement your own rules in one of two methods.
Create Generator File
This is the preferred method since you will always know where your class modifiers ( called generators) will live.
First decide where you would like to keep your generators. For the purpose of this example we will use the following directory:
app/Providers/RouteToClass/UserTypeGenerator.php
All you have to do is extend the GeneratorAbstract.php
file and implement a method
which returns the class string. See below for a simple example:
Next add a reference to the generator in your /config/route2class.php
configuration:
Now when you call the facade or Blade directive in a view template, you will
see the class user-admin
- neat!
See this file for a real-life generator example:
https://github.com/zschuessler/laravel-route-to-class/blob/master/src/Generators/FullRoutePath.php
Ad-Hoc Class Additions
You can interact with the body classes directly by calling the addClass
method on the
provider.
Here's an example using the default Laravel project's routes file:
You can call the addClass
method anywhere - models, controllers, etc. Consider adding
generator files instead, as it promotes application maintainability and reduces technical debt.
Demo Project
The demo project below follows the examples outlined above:
https://github.com/zschuessler/route2class-demo
License
This is public domain. Do what you want.