定制 nowo-tech/word-template-bundle 二次开发

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

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

nowo-tech/word-template-bundle

最新稳定版本:v0.1.0

Composer 安装命令:

composer require nowo-tech/word-template-bundle

包简介

Symfony bundle: fill .docx Word templates (PHPWord TemplateProcessor) from a context array — scalars, rich HTML, table rows, images.

README 文档

README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

Found this useful? Install from Packagist (composer require nowo-tech/word-template-bundle) and consider starring WordTemplateBundle on GitHub.

Symfony bundle that fills Microsoft Word .docx templates (PHPWord TemplateProcessor) using a PHP context array:

  • Scalars (strings, numbers, booleans, null) → setValue on placeholders such as ${client_name} or ${client.city} when you nest arrays (flattened to dot keys).
  • TableRowscloneRow + per-cell #1, #2, … replacements for repeating table lines.
  • HtmlContent → rich fragments (paragraphs, bold/italic, tables inside HTML, etc.) via PHPWord Html::addHtml embedded as a complex block (lists <ul>/<ol> may require extra numbering setup in PHPWord; prefer plain paragraphs or combine with HtmlToWordBundle for full HTML pipelines).
  • ImageSourcesetImageValue with optional width/height.

This bundle does not execute Word VBA macros; “macros” here means template placeholders in the .docx compatible with PHPWord.

Documentation

Additional documentation

Requirements

  • PHP 8.2+
  • Symfony 6.4 / 7.x / 8.x (as in composer.json)
  • Extensions: dom, json, libxml, zip

Quick start

composer require nowo-tech/word-template-bundle

Register Nowo\WordTemplateBundle\WordTemplateBundle if needed, then wire your templates and inject WordTemplateProcessorInterface:

use Nowo\WordTemplateBundle\Processor\WordTemplateProcessorInterface;

$doc = $this->wordTemplateProcessor->process(
    '/path/to/template.docx',
    [
        'title' => 'Contract #42',
        'client' => ['name' => 'ACME', 'city' => 'Madrid'],
    ],
);
$bytes = $doc->readContents();
$doc->dispose(); // if the processor used a temp file

Tests and coverage

Scope Detail
PHPUnit composer test — unit + integration (minimal kernel in tests/Fixtures/AppKernel.php).
Lines composer coverage-check enforces ≥ 93% (PCOV). Última medición global: ~94%.

Development

make up
make qa
make release-check

Demos (FrankenPHP)

From the repository root:

cd demo/symfony7 && cp .env.example .env && make up   # Symfony 7, port 8020
cd demo/symfony8 && cp .env.example .env && make up   # Symfony 8, port 8021

Or from demo/: make up / make up8 (see demo/README.md).

Versioning

Semantic Versioning.

License

MIT License.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-08

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固