Skip to content

Rewrite class Router - #118

Merged
giuscris merged 3 commits into
2.xfrom
feature/router-2.0
Jul 5, 2021
Merged

Rewrite class Router#118
giuscris merged 3 commits into
2.xfrom
feature/router-2.0

Conversation

@giuscris

@giuscris giuscris commented Jul 5, 2021

Copy link
Copy Markdown
Member

This PR rewrites and enhances the Router class adding some new features:

  1. No more messy Router::add() method. Now Router::addRoute() only takes the route name and path. Everything else is chained:
$route = $router->addRoute('name', '/path/{param}/')
    ->action('Namespaced\\Controller\\ClassName@action')
    ->methods('GET', 'POST');
  1. Optional route params:
$route = $router->addRoute('name', '/path/{param}/{optionalParam?}/');
  1. Now routes can be imported from external files:
// /formwork/routes.php

return [
    'routes' => [
        'index' => [
            'path'   => '/',
            'action' => 'Formwork\\Controllers\\PageController@load'
        ],
        'index.pagination' => [
            'path'   => '/page/{paginationPage:num}/',
            'action' => 'Formwork\\Controllers\\PageController@load'
        ],
        'tag.pagination' => [
            'path'   => '/{page}/tag/{tagName:aln}/page/{paginationPage:num}/',
            'action' => 'Formwork\\Controllers\\PageController@load'
        ],
        'tag' => [
            'path'   => '/{page}/tag/{tagName:aln}/',
            'action' => 'Formwork\\Controllers\\PageController@load'
        ],
        'page.pagination' => [
            'path'   => '/{page}/page/{paginationPage:num}/',
            'action' => 'Formwork\\Controllers\\PageController@load'
        ],
        'page' => [
            'path'   => '/{page}/',
            'action' => 'Formwork\\Controllers\\PageController@load'
        ]
    ]
];

// /formwork/src/Formwork.php

// ...
    $this->router->loadFromFile($this->config()->get('routes.files.system'));
// ...

@giuscris giuscris added enhancement New feature or request refactoring labels Jul 5, 2021
@giuscris giuscris self-assigned this Jul 5, 2021
@giuscris
giuscris merged commit 581935c into 2.x Jul 5, 2021
@giuscris
giuscris deleted the feature/router-2.0 branch July 5, 2021 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant