PHPackages                             devbr/router - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. devbr/router

ActiveLibrary[Framework](/categories/framework)

devbr/router
============

Access Controller for your website (Router)

0.2.4(8y ago)15152MITPHP &gt;=5.6

Since Dec 23Compare

[ Source](https://github.com/devbr/router)[ Packagist](https://packagist.org/packages/devbr/router)[ Docs](http://dbrasil.tk/devbr/)[ RSS](/packages/devbr-router/feed)WikiDiscussions Synced today

READMEChangelog (10)DependenciesVersions (21)Used By (2)

Access Manager - Router
=======================

[](#access-manager---router)

[![Latest Stable Version](https://camo.githubusercontent.com/1e5d22e4bfb22893a32110ef65cc9ac41fa33be29fa776a759956562b682f47f/68747470733a2f2f706f7365722e707567782e6f72672f64657662722f776562736974652f762f737461626c65)](https://packagist.org/packages/devbr/router)[![Latest Unstable Version](https://camo.githubusercontent.com/c1ea2d3a39de3feb17a070b54745025441d3b680b0039d83281af05b7a213fc4/68747470733a2f2f706f7365722e707567782e6f72672f64657662722f776562736974652f762f756e737461626c65)](https://packagist.org/packages/devbr/router)[![License](https://camo.githubusercontent.com/72f63716465dab46c41a9583c0c844af106fe24f7e28587a5c00b24b9f227af1/68747470733a2f2f706f7365722e707567782e6f72672f64657662722f776562736974652f6c6963656e7365)](https://packagist.org/packages/devbr/router)[![Total Downloads](https://camo.githubusercontent.com/bb29464084800a67b7fb3187fe628f34c144ec08634e5e025ce9e32a7a1bd513/68747470733a2f2f706f7365722e707567782e6f72672f64657662722f776562736974652f646f776e6c6f616473)](https://packagist.org/packages/devbr/router)[![Monthly Downloads](https://camo.githubusercontent.com/517e6b24b9280f934b31b4b58008fa03df9430f3af32ee28069ed4e1154a17dd/68747470733a2f2f706f7365722e707567782e6f72672f64657662722f776562736974652f642f6d6f6e74686c79)](https://packagist.org/packages/devbr/router)

Install
-------

[](#install)

Use Composer for easy installation:

```
Composer require devbr/router
```

Or install the full base for PHP websites, at "".

More info:

Access Management
-----------------

[](#access-management)

`TODO: translate to english`

Depois de instalado o arquivo de configuração (Config\\Devbr\\Router), é possível indicar as regras de resposta a solicitações de acesso ao site ou aplicação.

```
namespace Config\Devbr;

class Router
{
    function __construct($router)
    {
        $router->respond('get', '/', 'Site\Front::page');
    }
}
```

Este é o arquivo básico que acompanha a instalação do Router, podendo ser encontrado em "/Config/Devbr/Router.php" (ou na pasta \[vendor\]/devbr/router/Config/Devbr/Router.php). É neste arquivo que fazemos a configuração de acesso de nossa aplicação ou site.

Para facilitar o acesso as configurações, sugiro mover a pasta "Config" para o "root" de sua aplicação PHP e acrescentar o seguinte em seu arquivo **composer.json**:

```
...
    "autoload": {
        "Config\\": {"": ".php/Config/"}
    }
...
```

**&lt;&lt; supondo que ".php/" seja seu fallback (ou raiz) para os arquivos PHP &gt;&gt;**

A função "respond", responsável por adicionar as rotas de resposta conforme a solicitação de acesso, tem a seguinte sintaxe:

```
TODO: review examples and didactics

$router->respond( , , , []);

    :       A string with the following methods: "all", "get", "post", "delete", "put", "patch".
                  Or specify a specific group: "get|post|delete".

    :    String of the requested URI (without site domain).
                        Ex.: "about/me" ==> http://site.com/about/me

    : Class (object) to manage the request.
                  Name must be a complete string, with NAMESPACE + CLASSNAME.
                        Ex.: "Devbr\User".
                  Alternatively you can use the following format: "controller::action".
                        Ex.: "Devbr\User::login".
                  The Controller can also be an anonymous function that receives (or not)
                  parameters of the regular expression in .
                        Ex.: $router->respond('get',
                                              '/(*)/(*)/(*)',
                                              function($rqst, $params){
                                                  exit( ''.print_r($params, true));
                                              }
                                             );
                    -- If you request "http://site.com/test/me/now", print on the screen "test me now".

    :     Optional to indicate an action.
                        Ex.: "login".
```

Namespace
---------

[](#namespace)

`TODO: translate to english`

O NAMESPACE tem seu "root" (fallback) na pasta do PHP em seu site ou aplicação.

Se você instalou o "" já terá esta configuração, caso não, acrescente isto em seu composer.json:

```
...
    "autoload": {
        "psr-4": {"": ".php/"}
     }
...
```

**&lt;&lt; a pasta pode ter outro nome, conforme sua escolha &gt;&gt;**

Em um servidor Linux, rodando Apache, o root pode estar no seguinte caminho:

```
/var/www/site/.php/

--- pode variar conforme a configuração do servidor.
```

A partir dessa pasta você pode chamar qualquer recurso (classe), usando o caminho relativo, o patch (caminho) do arquivo da classe.

Vamos considerar (para exemplo) que a sua classe está no seguinte caminho:

```
/var/www/site/.php/Site/Front/Page.php
```

Para montar esse objeto use:

```
$page = new Site\Front\Page;
```

Ou você pode usar a declaração "use", para ficar mais elegante:

```
//Logo abaixo do "namespace":
use Site\Front\Page;
 ....

//Dentro de um método da classe...
$page = new Page;
```

Usando o ROUTER
---------------

[](#usando-o-router)

No front controller da sua aplicação web (geralmente o arquivo index.php), você pode ter o seguinte:

```
