Расширение на Slim PHP Micro-Framework версию 3 для включения языковой маршрутизации, то есть IE I18N и L10N.
По терминалу:
composer require luism-s/multilingualslim $container используется в качестве интерфейса между промежуточным программным обеспечением и маршрутами. Промежуточное программное обеспечение Multillinguage внедряет следующие переменные в $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-Multillanguage, который следует той же философии, но предназначен для версии 2 Slim.
Разработайте функции, чтобы делать такие вещи, как тестирование на язык по умолчанию, получить текущий язык, сравнить язык и, возможно, больше.