https://github.com/lassehaslev/laravel-package-router
Your package routes made REALLY simple!
https://github.com/lassehaslev/laravel-package-router
Last synced: about 1 year ago
JSON representation
Your package routes made REALLY simple!
- Host: GitHub
- URL: https://github.com/lassehaslev/laravel-package-router
- Owner: LasseHaslev
- Created: 2016-12-10T12:04:23.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-12-12T16:57:04.000Z (over 9 years ago)
- Last Synced: 2025-02-23T18:16:58.502Z (over 1 year ago)
- Language: PHP
- Size: 41 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# lassehaslev/laravel-package-router
> Your package routes made REALLY simple!
## Install
Run ```composer require lassehaslev/laravel-package-router```
## Usage
This is a [global/universal](https://github.com/LasseHaslev/UniversalObjects) object to handle your routes.
Even tough this package is made to handle routes in packages, it is no trouble using it wherever you want.
#### Register your routes
Add your routes in ServiceProvider@register
```php
// It is recommended that you extend the class
class MyRouter extends LasseHaslev\LaravelPackageRouter\PackageRouter {}
// Create new router
$router = MyRouter::create();
// Add route to router
$router->add( 'users.index', [
'uri'=>'users',
'as'=>'users.index',
'uses'=>'Controller@index',
] )
// You can also chain add
->app( 'users.update', [
'uri'=>'users/{user}',
'method'=>'put',
'uses'=>'Controller@index',
] );
->add( 'images.index', [
'uri'=>'images',
'uses'=>'Controller@index',
] )
->add( 'images.store', [
'uri'=>'images',
'method'=>'post',
'uses'=>'Controller@store',
] )
```
#### Register routes
Note that you can get the reference of the router only by calling ```MyRouter::get()``` even though you created it another place.
This is because it extends [LasseHaslev\UniversalObjects\Object](https://github.com/LasseHaslev/UniversalObjects).
```php
// Usually in your routes/web.php
$myRouter = MyRouter::get();
$myRouter->route( 'images.index' ); // "/images"
Route::group([ 'prefix'=>'backend', 'middleware'=>'auth' ], function( $router ) use ( $myRouter ) {
$myRouter->routes( 'users' ); // "/backend/users" and "/backend/users/{user}"
$myRouter->route( 'images.store' ); // "/backend/images"
});
```
#### Api
```php
// Get the router
$router = MyRouter::create(); // MyRouter::get();
// Add route
$router->add( $reference, [
'uri'=>'users',
'method'=>'get',
'as'=>'users.index',
'uses'=>'Controller@index',
// 'middleware'=>'auth', // You can add middleware if you want to
] );
// Get all routes
$router->routes(); // Set routes for users.index, images.index and images.show
// Get all routes under images namespace
$router->routes( 'images' ); // Set routes for images.index and images.show
// Get single route
$router->route( 'images.index' );
```
## Development
``` bash
# Install dependencies
composer install
# Install dependencies for automatic tests
yarn
# Run one time
npm run test
# Automaticly run test on changes
npm run dev
```