lighth7015 / phptal-laravel
PHPTAL for Laravel
dev-master
2021-04-23 10:31 UTC
Requires
- php: >=5.5.9
- laravel/framework: >=5.0
- phptal/phptal: dev-master
This package is auto-updated.
Last update: 2024-09-17 19:08:43 UTC
README
安装
将 lighth7015\LaravelPHPTAL
添加到 composer.json 中的依赖项
{ "require": { "phptal/phptal": "dev-master", "lighth7015/phptal-laravel": "dev-master" } }
只需将示例配置复制到您的 config
目录。
php ./artisan vendor:publish --provider 'lighth7015\LaravelPHPTAL\ServiceProvider'
配置
目前PHPTAL默认设置为HTML5,但您可以在其config.php文件、XHTML或XML中更改此设置。
过滤器
PHPTAL还有一个很棒的功能,您可以使用它,例如,我有一个用于清除图片、js、css缓存的过滤器,这可以通过配置文件进行配置。
'preFilters' => [ 'bustCache', 'minimizeJs', 'adderJs' ]
#使用方法
您调用PHPTAL模板的方式就像调用任何其他视图一样
view('hello', [...])
翻译
PHPTALTranslator类使用Laravel翻译服务,因此翻译文件应放置在框架相同的翻译文件目录中。例如,如何使用id为'welcome'且包含在名为'messages.php'的文件中的翻译
<div i18n:domain="messages" i18n:translate="string:welcome"></div>
<div i18n:domain="messages" i18n:translate="">welcome</div>
<div i18n:translate="string:messages.welcome"></div>
<div i18n:translate="">messages.welcome</div>
复数化
翻译文件
<?php # File 'messages.php' return [ 'apples' => 'There is one apple|There are many apples', 'oranges' => '{0} There are none|[1,19] There are some|[20,Inf] There are many', ];
<div 18n:domain="messages" i18n:translate="string:apples|5"> <!--There are many apples --> </div>
<span tal:define="q php:22" i18n:translate="string:messages.oranges|${q}"> <!--There are many --> </span> oranges
插值
<?php # File 'messages.php' return [ 'welcome_ex1' => 'Welcome ${user}, you have ${mails} unread mails.', 'welcome_ex2' => 'Welcome :name!', 'welcome_ex3' => 'Welcome :anonymous!', 'anonymous' => 'anonymous user', ];
<div 18n:domain="messages" i18n:translate="string:welcome_ex1"> <span i18name="name" tal:replace="user/name"/> <span i18name="name" tal:replace="user/nbrMails"/> </div>
<div 18n:domain="messages" i18n:translate="string:welcome_ex1||user=${user/name}|mails=${user/nbrMails}"> </div>
<div tal:define="name user/name" 18n:domain="messages" i18n:translate="string:welcome_ex2"> </div>
<div 18n:domain="messages" i18n:translate="string:welcome_ex3"> <!-- Welcome anonymous user! --> </div>