solution-web / marty
v6.1.0
2020-09-19 15:29 UTC
Requires
- php: ^7.2
- mako/framework: ^6.0 || ^7.0
- smarty/smarty: ^3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
- php-parallel-lint/php-parallel-lint: ^1.2
- phpro/grumphp: ^0.19
- phpunit/phpunit: ^8.0 || ^9.0
Suggests
- phpunit/phpunit: Test whether templates actually compile in your unit tests.
README
Marty 是 Mako 框架的一个简单 Smarty 视图渲染器。
要求
Marty 已在所有当前 Mako 版本上进行了测试。其他版本 可能 也能工作,但未经过测试。单元测试是在 PHP 7.0 及以上版本上运行的。需要 Smarty 3,但将在安装过程中自动引入。
安装
可以使用 composer 将 Marty 添加到您的 Mako 项目中!只需将其添加到您的需求中
{ /* Stuff */ require: { /* Your other requirements */ "bertptrs/marty": "*" } /* The rest of your composer.json*/ }
使用
安装后,您需要将其添加到您的包列表中。这可以通过将其添加到 "Web" 包来实现。这位于文件 app/config/application.php
中。
<?php return [ // … 'packages' => [ // … 'web' => [ 'marty\MartyPackage', ], ], // … ]; ?>
这将启用所有以 ".tpl" 扩展名的视图的 Smarty 视图渲染器。
配置
可以通过更改 marty::smarty
配置来完成配置。有关详细信息,请参阅 Mako 关于包配置的文档。
配置属性如下
配置属性 | 类型 | 描述 | 默认 |
---|---|---|---|
smarty.templateDir | 字符串 | 查找 smarty 模板的路径。 | 您的 app/views 目录。 |
smarty.compileDir | 字符串 | 存储编译模板的路径。 | 在您的 app/storage 目录中创建一个名为 smarty 的新目录。 |
smarty.pluginDirs | 字符串数组 | 搜索 smarty 插件目录的列表。 | 空数组。 |
插件
Marty 支持 Smarty 提供的插件结构,并扩展了 Mako 框架提供的依赖注入器。
可以添加插件目录到配置中。插件的架构可以在 Smarty 文档 中找到。由于 Mako 通过名称解析参数,Smarty 插件参数应该使用文档中指定的名称。这意味着参数应该命名为以下方式
- 模板函数
- 参数应该命名为
$params
- smarty 模板应该命名为
$template
- 参数应该命名为
- 修饰符
- 输入数据应命名为
$value
- 其他值将按顺序存储在数组
$params
中。
- 输入数据应命名为
- 块函数
- 调用参数应命名为
$params
- 块内容应命名为
$content
- 模板引用应命名为
$template
- 重复标志应命名为
$repeat
。
- 调用参数应命名为
- 编译函数
- 调用参数应命名为
$params
- Smarty 引用应命名为
$smarty
- 调用参数应命名为
例如,我们可以构建一个小插件,该插件使用框架的 I18n 模块。
function smarty_modifier_i18n($value, mako\i18n\I18n $i18n) { return $i18n->get($value); }
然后,我们可以这样使用您的插件
Lets show {'some.translated.text'|i18n}.
贡献
如果Smarty中有任何功能在当前包中无法(轻松)使用,或者如果有Mako功能难以与Smarty绑定,请随时提交一个问题或拉取请求。
代码风格和其他规则使用GrumPHP运行。请确保您的文件符合这些规则。