bertptrs/marty

Mako 框架的 Smarty 视图渲染器

v6.2.0 2022-09-11 15:42 UTC

README

Continuous Integration Latest Stable Version Total Downloads License

Marty 是 Mako 框架的一个简单的 Smarty 视图渲染器。

需求

Marty 已在所有当前 Mako 版本上进行了测试。其他版本 可能 也能工作,但尚未经过测试。单元测试针对 PHP 7.0 及以上版本运行。需要 Smarty 3 或 4,但将在安装过程中自动引入。

安装

您可以使用 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 关于包配置的文档

配置属性如下

插件

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