Skip to content

amirHossein5/laravel-routin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This package provides searching between laravel application routes.
For example when user's going to create a menu item, have to link that to a page, but instead of writing manually you can show your intended routes to select:

Routin::routes()
  ->withoutParameter()
  ->method('get')
  ->getUri();

Output will be those routes uri, that haven't any parameter and verb of GET:

array:3 [▼
  0 => "/"
  1 => "user"
  2 => "user/create"
]

Prerequisites

  • Laravel 8
  • PHP 8

Installation

composer require amir-hossein5/laravel-routin

Usage

Filters

filter description
uriStartsWith( string ) where uri (/users/create) starts with something (here starts with u or users)
uriEndsWith( string ) where uri (/users/create) ends with something (here ends with e or create)
nameStartsWith( string ) where name (users.create) starts with something (here starts with u or user)
nameEndsWith( string ) where name (users.create) ends with something (here ends with e or create)
withoutParameter() where route doesn't have any parameter
method( string ) where route's verb is $mehod

Notice: There is no order for methods and but you have to use ::routes() at the begining.

Getters

After filtering routes you need to get them by these methods:

Getting routes manually

use AmirHossein5\Routin\Facades\Routin;


Routin::routes()
  ->withoutParameter()
  ->get(fn ($route) => [
    $route->uri => $route
  ])
  
// output

array:2 [▼
  "user/create" => Illuminate\Routing\Route {#1109 ▶}
  "book/{book}" => Illuminate\Routing\Route {#1108 ▶}
  ...
]

See available methods in https://laravel.com/api/8.x/Illuminate/Routing/Route.html

get()

use AmirHossein5\Routin\Facades\Routin;


Routin::routes()
  ->withoutParameter()
  ->method('post')
  ->get()
  
// output

array:2 [▼
  "user.store" => Illuminate\Routing\Route {#1109 ▶}
  "book.store" => Illuminate\Routing\Route {#1108 ▶}
]

Returns array with key of name and value of laravel's Illuminate\Routing\Route object.

getUri()

Routin::routes()
  ->withoutParameter()
  ->method('get')
  ->getUri()

// output

array:3 [▼
  0 => "/"
  1 => "user"
  2 => "user/create"
]

Returns array with value of routes uri.

getParameters()

Routin::routes()
  ->method('put')
  ->getParameters()

// output

array:2 [▼
  "user.update" => array:1 [▼
    0 => "user"
  ]
  "book.update" => array:1 [▼
    0 => "book"
  ]
]

Returns array with key of name and value, array of parameters.

getName()

Routin::routes()
  ->getName()

// output

array:7 [▼
  0 => "user.index"
  1 => "user.create"
  2 => "user.store"
  3 => "user.show"
  4 => "user.edit"
  5 => "user.update"
  6 => "user.destroy"
]

Returns array with value of route's name.

License

License