0

Twig テンプレートで AltoRouter を使用しています。私のindex.phpは

index.php

require('vendor/autoload.php');

$router = new AltoRouter();
$router->map('GET','/', function(){
     require __DIR__ . '/views/index_v.php';
}, 'inicio');   

$router->map('GET','/historia', function(){
     require __DIR__ . '/views/historia_v.php';
}, 'historia');

$match = $router->match();

if( $match && is_callable( $match['target'] ) ) {               
    call_user_func_array( $match['target'], $match['params']); 
} else {
    header( $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}

それは完全に機能しますが、index.php を変更して、$match['name'] または別のパラメーター (redirect.php など) を使用して呼び出すようにしたいと考えています。

index.php (変更)

require('vendor/autoload.php');

$router = new AltoRouter();
$router->map('GET','/', /views/redirect.php', 'inicio');    
$router->map('GET','/historia', /views/redirect.php', 'historia');  

$match = $router->match();

if( $match && is_callable( $match['target'] ) ) {               
    call_user_func_array( $match['target'], $match['params']); 
} else {
    header( $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}

リダイレクト.php

$loader = new Twig_Loader_Filesystem(array('views', 'includes', 'includes/languages/en', 'includes/languages/es', 'includes/languages/it', 'includes/languages/zh'));

$twig = new Twig_Environment($loader);

include('includes/languages/'.idioma().'/comunes.php'); 
include('includes/languages/'.idioma().'/historia.php');    

if($match['name'] == 'inicio'){
    echo $twig->render('inicio.php', array('textos'=>$textos['idioma']));   
}elseif($match['name'] == 'historia'){
    echo $twig->render('historia.php', array('textos'=>$textos['idioma'], 'historia'=>$historia['idioma']));
}

私の考えは、1 つまたは別の Twit テンプレートを表示する単一の redirect.php ファイルを使用することです。

出来ますか?

4

1 に答える 1

0

単一の index.php で問題を解決しました

index.php

require('vendor/autoload.php');

$router = new AltoRouter();
$router->map('GET','/', /views/inicio.php', 'inicio.php');    
$router->map('GET','/historia', /views/historia.php', 'historia.php');  

$loader = new Twig_Loader_Filesystem(array('views', 'includes', 'includes/languages/en', 'includes/languages/es', 'includes/languages/it', 'includes/languages/zh'));

$twig = new Twig_Environment($loader);

include('includes/languages/'.idioma().'/comunes.php'); 

$match = $router->match();

if( $match && is_callable( $match['target'] ) ) {               
    echo $twig->render($match['name'], array('textos'=>$textos['idioma']));
} else {
    header( $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}
于 2016-08-19T20:34:36.680 に答える