Laravel 5 Global Routing Package

Łukasz Piotrowski Komentarzy 0

    Witajcie.

    Dziś wrzucam Wam małą paczuszkę do przetestowania.
    Laravel 5 Global Routing to paczka pozwalająca na tworzenie kontrolerów i metod a potem proste odwołanie się do nich przez URL.
    Taki mechanizm działał w CakePHP.


    Instalacja

    Dodajemy zależność do composer.json:

    "require": {
        "pyton/global-routing": "dev-master"
    }

    lub poleceniem
    composer require pyton/global-routing

    Do pliku config/app.php jako ostatni wpis:

    'providers' => [    
        // …
    
        Pyton\GlobalRouting\GlobalRoutingServiceProvider::class,
    ],

    Jest to o tyle istotne że ServiceProvider rejestruje globalny route i dodanie go wcześniej może spowodować problemy z łapaniem innych url.

    Użycie

    Dostaliśmy do dyspozycji taki route:

    +--------+--------------------------------+----------------------------------+
    | Domain | Method                         | URI                              |
    +--------+--------------------------------+----------------------------------+
    |        | GET|HEAD|POST|PUT|PATCH|DELETE | {controller}/{action?}/{params?} |
    +--------+--------------------------------+----------------------------------+

    Przykładowy URL http://domain.pl/home/show/1 będzie zmapowany na taki kontroler:

    <?php
    
    namespace App\Http\Controllers;
    
    class HomeController extends Controller
    {
        public function showAction($id)
        {
            
        }
    }

    Zasady konwersji URL -> Controller

    Przy konwertowaniu URL na kontroler/metodę ustala się:
    {controller} – home -> HomeController (ucfirst + sufix "Controller")
    {action} – show -> showAction (lowercase + sufix "Action")

    Parametry są oddzielane / i może być ich dowolna ilość. Są mapowane w metodzie w kolejności ich występowania w URL.
    Przy mapowaniu parametrów nie są brane pod uwagę parametry bindowane w metodzie np:

    public function showAction($id, Request $reques, $id2, $id3)
    {
    }

    Request $request zostanie zastąpiony odpowiednim obiektem

    Podsumowanie

    Jest to pierwszy releas paczki, więc mogą się pojawiać jakieś błędy.
    Wszelkie uwagi są mile widziane.

    URL do GitHub: https://github.com/Pyton/GlobalRouting

    Inne artykuły

    Top