定制 ajur-media/template 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ajur-media/template

最新稳定版本:1.2.0

Composer 安装命令:

composer require ajur-media/template

包简介

Template class for AJUR Media projects, based on Smarty

README 文档

README

https://github.com/ajur-media/template https://packagist.org/packages/ajur-media/template

How to use?

require_once __DIR__ . '/vendor/autoload.php';

$SMARTY = new Smarty();
$SMARTY->setTemplateDir( __DIR__ );
$SMARTY->setCompileDir( __DIR__ . '/cache/');
$SMARTY->setForceCompile(true);

// Global + inner templates

$global = new \AJUR\Template($SMARTY, $_REQUEST);
$global->setTemplate('1.tpl');

$inner = new \AJUR\Template($SMARTY);
$inner->setTemplate("2.tpl");
$inner->assign('value_1', 'FOO');
$inner->assign('value_2', 'BAR');

$global->assign("content", $inner->render());

echo $global->render();

// Global + include secondary template:

$global = new \AJUR\Template($SMARTY);
$global->setTemplate('0.tpl');
$global->assign("file", "2.tpl");
$global->assign('value_1', 'FOO');
$global->assign('value_2', 'BAR');

echo $global->render();

// JSON

$global = new \AJUR\Template($SMARTY);
$global->assign("file", "2.tpl");
$global->assign('value_1', 'FOO');
$global->assign('value_2', 'BAR');

// or use helper

$global->assignJSON([
    'file'      =>  '2.tpl',
    'value_1'   =>  'FOO',
    'value_2'   =>  'BAR',
]);

$global->setRenderType(\AJUR\Template::CONTENT_TYPE_JSON);

echo $global->render();

Плагины шаблонизатора

Для корректной работы плагина нужен параметр opcache.save_comments = 1 в php.ini

Передача параметров в (регистрируемые) плагины:

modifier

Есть два способа и зависят они от способа регистрации функции:

А) через перечисление аргументов (причем опущенные аргументы принимают значение по умолчанию)

{$size|size_format:decimals:separator:separator}

Тогда функция должна быть определена так:

public static function size_format(int $size, int $decimals = 0, string $decimal_separator = '.', string $thousands_separator = ','):string;

Б) через массив аргументов

{$size|size_format:[3,',','-']}

Тогда функция должна быть определена иначе:

public static function sf(int $size, array $params):string 
{
    $decimals = $params['decimals'] ?? 3;
    $decimal_separator = $params['decimal_separator'] ?? '.';
    $thousands_separator = $params['thousands_separator'] ?? ',';
    // ...
}

function

Используется так:

{sum a=11 b=14}

Метод должен быть определен ТОЛЬКО так:

function sum($params)
{
    return ($params['a'] ?? 0) + ($params['b'] ?? 0);
}

@todo:

https://www.smarty.net/docs/en/resources.string.tpl

ajur-media/template 适用场景与选型建议

ajur-media/template 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 145 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 01 月 20 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 ajur-media/template 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ajur-media/template 我们能提供哪些服务?
定制开发 / 二次开发

基于 ajur-media/template 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 145
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 20
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-01-20