-
Notifications
You must be signed in to change notification settings - Fork 8
Redirecionamento HTTP
Para usar primeiro adicione Inphinit\Experimental\Http\Redirect
no seu arquivo, algo como isto:
<?php
use Inphinit\Experimental\Redirect;
Se a sua aplicação estiver no "root" do servidor, quando acessar http://localhost/
irá ser redirecionado para http://localhost:9000/baz
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/', function () {
Redirect::to('baz'); //irá redirecionar para http://localhost/baz
return 'Olá, mundo'; //será processado
});
Se a sua rota for /user/
e acessar http://localhost/user/
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/user/', function () {
Redirect::to('baz'); //irá redirecionar para http://localhost/user/baz
return 'Olá, mundo'; //será processado
});
Se a sua rota for /user/
and add prefix /
irá ser redirecionado para http://localhost/baz
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/user/', function () {
Redirect::to('/baz'); //irá redirecionar para http://localhost/baz
return 'Olá, mundo'; //será processado
});
Se sua aplicação não estiver na "root" do servidor, por exemplo http://localhost/mysite/
, irá ser redirecionado para http://localhost/mysite/baz
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/', function () {
Redirect::to('baz'); //irá redirecionar para http://localhost/mysite/baz
return 'Olá, mundo'; //será processado
});
Se a sua rota for /user/
e acessar http://localhost/mysite/user/
irá ser redirecionado para http://localhost/mysite/user/baz
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/user/', function () {
Redirect::to('baz'); //irá redirecionar para http://localhost/mysite/user/baz
return 'Olá, mundo'; //será processado
});
Se acessar http://localhost/mysite/user
irá ser redirecionado para http://localhost/mysite/foo
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/user/', function () {
Redirect::to('/foo'); //irá redirecionar parahttp://localhost/mysite/foo
return 'Olá, mundo'; //será processado
});
Note que isto não irá redirecionar para fora do caminho da aplicação
Para parar a aplicação quando redirecionar use o método Inphinit\Experimental\Redirect::only
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Http\Redirect;
Route::set('GET', '/', function () {
Redirect::only('baz'); //irá redirecionar parahttp://localhost/baz
custom_function(); //NÃO será processado
return 'Olá, mundo'; //NÃO será processado
});
Se um controller for definido para uma rota você pode redirecionar usar o método Inphinit\Experimental\Routing\Redirector::action
, se acessar http://localhost/redirecionamento
irá ser redirecionado para http://localhost/foo/bar/baz
:
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Routing\Redirector;
Route::set('GET', '/foo/bar/baz', 'MeuControllador:acao');
Route::set('GET', '/redirecionamento', function () {
Redirector::action('MeuControllador:acao'); //irá redirecionar para http://localhost/foo/bar/baz
});
Redireciona para uma rota com regex passando argumentos:
Route::set('GET, '/user/{:[\w\-]+:}/{:\d+:}', 'MeuControllador:acao');
//se acessar http://localhost/redirecionamento-1
Route::set('GET', '/redirecionamento-1', function () {
//irá redirecionar para http://localhost/user/maria/1001
Redirector::action('MeuControllador:acao', array( 'maria', '1001' ));
});
//se acessar http://localhost/redirecionamento-2
Route::set('GET', '/redirecionamento-2', function () {
//irá redirecionar para http://localhost/user/joao/1002
Redirector::action('MeuControllador:acao', array( 'joao', '1002' ));
});
<?php
use Inphinit\Routing\Route;
use Inphinit\Experimental\Routing\Redirector;
Route::set('GET', '/foo', 'MeuControllador:acao');
Route::set('GET', '/bar', 'MeuControllador:acao');
Route::set('GET', '/redirecionamento-1', function () {
Redirector::route('/foo'); //irá redirecionar para http://localhost/foo/bar/baz
});
Route::set('GET', '/redirecionamento-2', function () {
Redirector::route('/bar'); //irá redirecionar para http://localhost/foo/bar/baz
});
Route::set('GET', '/redirecionamento-3', function () {
Redirector::route('/baz'); //Irá emitir uma Exception pois a rota não foi definida
});
Inphinit the PHP Framework is writed using PSR-1, PSR-2 and PSR-4, you can use Controllers, Views, Routes
- Getting Started
- About
- Performance
- Directory Structure
- Constants
- Routing
- Controllers
- Views
- Events
- HTTP Response
- HTTP Request
- HTTP Redirect
- HTTP Content Negotiation
- Storage and Files
- Rest
- Maintenance
- Regular Expression
- Response Cache
- DOM, XML, HTML, JSON and Arrays
- QuerySelector (CSS-selectors) with PHP
- Configuration
- Instalação
- Sobre
- Desempenho
- Estrutura das pastas
- Constantes
- Rotas
- Usando Controllers
- Usando Views
- Eventos
- Resposta HTTP
- Requisição HTTP
- Redirecionamento HTTP
- Negociação de Conteúdo HTTP
- Armazenamento e Arquivos
- Usando Rest
- Manutenção
- Expressão Regular
- Cache Resposta
- DOM, XML, HTML, JSON e Arrays
- QuerySelector (seletores-CSS) com PHP
- Configuração