承接 mmx/twig 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

mmx/twig

Composer 安装命令:

composer require mmx/twig

包简介

Twig Template Engine for MODX 3

README 文档

README

This extra is part of MMX initiative - the Modern MODX approach.

Prepare

This package can be installed only with Composer.

If you are still not using Composer with MODX 3, just download the composer.json of your version:

cd /to/modx/root/
wget https://raw.githubusercontent.com/modxcms/revolution/v3.0.5-pl/composer.json

Then run composer update --no-dev and you are ready to install the mmx packages.

Install

composer require mmx/twig --update-no-dev --with-all-dependencies
composer exec mmx-twig install

Remove

composer exec mmx-twig remove
composer remove mmx/twig

How to use

You can get and configure the instance of Twig in any snippet.

For example, snippet Test:

$tpl = $modx->getOption('tpl', $scriptProperties);
$var = $modx->getOption('var', $scriptProperties);

if ($service = $modx->services->get('mmxTwig')) {
    $service->addFilter(
        new \Twig\TwigFilter('hello', static function($var) {
            return $var . ' World!';
        }
    ));
    
    return $service->render($tpl, ['var' => $var]);
}

return '';

Chunk Test:

{{ var | hello }}

And MODX call of snippet with chunk:

[[!Test?tpl=`test`&var=`Hello`]]

You will get Hello World!.

If you use this package as a dependency for your own extra, you can load and configure the instance inside your class and make it shared through all snippets to make the same settings and modifiers.

Template Loaders

You have 3 template loaders by default:

  • MODX Chunk (default, no prefix - just specify id or name)
  • MODX Template (template:1, or template:BaseTemplate)
  • File (file:name.tpl)

If the MODX element has a static file, it will be used first, without checking the contents of the element in database.

File loader is native for Twig, it makes no connection to database at all. Use it for maximum Twig experience.

System Settings

All settings are prefixed with mmx-twig..

elements-path

The root directory for File provider.

If it is not existing or not readable, provider will be disabled and you will get INFO record in MODX log.

By default, it is not existing core/elements directory.

options

JSON encoded string with options to override defaults of Twig instance. For example:

{"strict_variables":  true}

See Twig documentation for more information.

The default setting are:

{
    "auto_reload": true,
    "strict_variables": false,
    "autoescape": false,
    "optimizations": -1
}

use-modx

You can enable the potentially dangerous use of MODX instance in templates with {{ modx }} global.

It will allow you to access to everything in MODX, including deleting resources, elements and directories!

Current id of MODX resource is: {{ modx.resource.id }}

Filters

Feel free to use all the standard Twig filters.

There are also 3 additional filters:

  • print - print escaped variable, {{ var | print }}
  • dump - dump escaped variable, {{ var | dump }}
  • esc - escape MODX tags in variable, {{ var | esc }}

Globals

You can access system globals in your template:

  • env to access $_ENV
  • get to access $_GET
  • post to access $_POST
  • files to access $_FILES
  • cookie to access $_COOKIE
  • server to access $_SERVER
  • session to access $_SESSION
  • request to access $_REQUEST

For example {{ server | print }}

Database Tables

This extra use 2 additional database table to store time of update of MODX chunks and templates, as they have no this data by default:

  • mmx_twig_chunks_time
  • mmx_twig_templates_time

Also, there is additional table for tracking migrations:

  • mmx_twig_migrations

Caching

When caching is enabled, you will get compiled templates in core/cache/mmx-twig directory.

This directory will be deleted when you clear MODX cache.

You cannot change this directory using the system settings, but you can set the value to false to disable caching.

mmx/twig 适用场景与选型建议

mmx/twig 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 15 次下载、GitHub Stars 达 2, 最近一次更新时间为 2024 年 05 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 mmx/twig 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-05-14