ownercoder/ru-php-stamp

一个用于基于XML的Office文档的XSL样式模板库。支持MS Word docx格式。

0.1.6 2017-12-25 05:16 UTC

This package is auto-updated.

Last update: 2024-09-16 03:32:15 UTC


README

PHPStamp是一个简单的PHP模板库,用于基于XML的Microsoft Word文档。
库旨在提供原生的XML模板方式,作为将DOM文档作为字符串进行正则替换的替代方案,后者有很多缺点。

基本上,它试图清理混乱的WYSIWYG生成的代码,并从文档中创建可重用的XSL样式表。
一些附加信息
(英文) https://redd.it/30conp
(俄语) http://habrahabr.ru/post/244421/

功能

  • 当前版本支持Microsoft Office OpenXML DOCX格式。
  • 可配置标签占位符的括号。
  • 基本扩展系统,有助于生成内容块,如单元格或列表项。
  • 将XSL模板缓存到文件系统。

要求

库需要PHP 5.3+,并且启用DOM、XSL和Zip扩展。
还依赖于doctrine2/Lexer包。

安装

使用Composer安装。

composer require shadz3rg/php-stamp

{
    "require": {
        "shadz3rg/php-stamp": "0.1.*"
    }
}

用法

模板。

alt tag

<?php
    require 'vendor/autoload.php';
    
    use PHPStamp\Templator;
    use PHPStamp\Document\WordDocument;
    
    $cachePath = 'path/to/writable/directory/';
    $templator = new Templator($cachePath);
    
    $documentPath = 'path/to/document.docx';
    $document = new WordDocument($documentPath);
    
    $values = array(
        'library' => 'PHPStamp 0.1',
        'simpleValue' => 'I am simple value',
        'nested' => array(
            'firstValue' => 'First child value',
            'secondValue' => 'Second child value'
        ),
        'header' => 'test of a table row',
        'students' => array(
            array('id' => 1, 'name' => 'Student 1', 'mark' => '10'),
            array('id' => 2, 'name' => 'Student 2', 'mark' => '4'),
            array('id' => 3, 'name' => 'Student 3', 'mark' => '7')
        ),
        'maxMark' => 10,
        'todo' => array(
            'TODO 1',
            'TODO 2',
            'TODO 3'
        )
    );
    $result = $templator->render($document, $values);
    $result->download();
结果。

alt tag