slim 3 multilingual
1.1.3
Slim PHP Micro-Framework 버전 3으로의 확장, IE I18N 및 L10N 언어 기반 라우팅을 가능하게합니다.
터미널로 :
composer require luism-s/multilingualslim $container 미들웨어와 경로 사이의 인터페이스로 사용됩니다. Multilinguage Middleware는 다음 변수를 $container 에 주입합니다 : default_language , available_languages 및 language . 처음 두 가지는 개발자가 설정 한 변수이며 마지막은 미들웨어 자체에 의해 설정되며 요청 된 언어를 나타냅니다.
use Psr Http Message ServerRequestInterface as Request ;
use Psr Http Message ResponseInterface as Response ;
require ' ../vendor/autoload.php ' ;
$ default_language = ' pt ' ;
$ available_languages = [ ' pt ' , ' en ' ];
$ app = new Slim App ();
$ container = $ app -> getContainer ();
$ app -> add ( new MultilingualSlim LanguageMiddleware ( $ available_languages , $ default_language , $ container ) );
$ app -> get ( ' / ' , function ( Request $ request , Response $ response ) {
// This works with '/', '/pt' and '/en',
// and prints 'Hello' in each language.
if ( $ this -> language === ' pt ' ) {
return $ response -> write ( " Olá Mundo " );
} elseif ( $ this -> language === ' en ' ) {
return $ response -> write ( " Hello World " );
}
});
$ app -> run ();라이브러리를 사용하여 PHP-View와 같은 템플릿을 렌더링 할 수도 있습니다. 예를 들어:
$ container [ ' renderer ' ] = new Slim Views PhpRenderer ( " ../views/ " );
$ app -> get ( ' /home ' , function ( Request $ request , Response $ response ) {
// This works with '/home', '/pt/home' and '/en/home',
// and returns the template views/base.php.
// It also passes the chosen language as an argument accessible from the chosen template.
return $ this -> renderer -> render ( $ response , " base.php " , [
" language " => $ this -> language
]);
});이 프로젝트는 Simotod/Slim-Multilanguage의 영향을 크게받으며 동일한 철학을 따르지만 Slim의 버전 2를 위해 만들어졌습니다.
기본 언어 테스트와 같은 작업을 수행하고 현재 언어를 얻고 언어를 비교하는 등 기능을 개발하십시오.