slim 3 multilingual
1.1.3
การขยายไปยัง Slim PHP Micro-Framework เวอร์ชัน 3 เพื่อเปิดใช้งานการกำหนดเส้นทางตามภาษาเช่น I18N และ L10N
โดยเทอร์มินัล:
composer require luism-s/multilingualslim $container ใช้เป็นอินเทอร์เฟซระหว่างมิดเดิลแวร์และเส้นทาง มิดเดิลแวร์ MultilingUage จะฉีดตัวแปรต่อไปนี้ลงใน $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 ซึ่งเป็นไปตามปรัชญาเดียวกัน แต่ถูกสร้างขึ้นสำหรับรุ่น 2 ของ Slim
พัฒนาฟังก์ชั่นในการทำสิ่งต่าง ๆ เช่นการทดสอบภาษาเริ่มต้นรับภาษาปัจจุบันเปรียบเทียบภาษาและอาจมากกว่านั้น