此包已被废弃,不再维护。作者建议使用 bertptrs/marty 包代替。

Mako 框架的 Smarty 视图渲染器

v6.1.0 2020-09-19 15:29 UTC

README

Continuous Integration Latest Stable Version Total Downloads License

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运行。请确保您的文件符合这些规则。