ouxsoft/phpmarkup

PHP编写的标记处理器。允许将标记提取到数据结构中,协调对该结构的嵌套操作,并以(优化后的)标记的形式输出。


README

CI Code Quality Code Coverage Docs Status

Latest Stable Version PHP Versions Supported License Total Downloads

安装

安装最新版本

$ composer require ouxsoft/phpmarkup

基本用法

创建一个包含DOMElement处理指令的Element类。

<?php

namespace App\Elements;

class Messages extends Ouxsoft\PHPMarkup\Element
{
    private $messages;

    public function onLoad() : void
    {
        $this->messages = $this->db->query('SELECT `msg` FROM `messages`;');
    }

    public function onRender(): string
    {
        $out = '';
        foreach($this->messages as $row){
            $out .= $row['msg'] . $this->getArgByName('delimiter');
        }
        return $out;
    }
}

配置一个处理器以使用创建的Element类处理DOM。

<?php

use Ouxsoft\PHPMarkup\Factory\ProcessorFactory;
use App\Elements\Messages;

$processor = ProcessorFactory::getInstance();
$processor->addElement(['xpath' => '//messages', 'class_name' => App\Elements\Messages::class]);
$processor->addRoutine(['method' => 'onLoad']);
$processor->addRoutine(['method' => 'onRender', 'execute' => 'RETURN_CALL']);
$processor->addProperty('db', new PDO('sqlite:/example.db'));
$processor->parseBuffer();
?>
<html lang="en">
    <messages>
        <arg name="delimiter">;</arg>
    </messages>
</html>

关于

PHPMarkup是一个用PHP编写的轻量级标记处理器。它简化了将标记提取到数据结构中、协调该结构的操作以及将输出作为(优化后的)标记的过程。它基于LHTML标准。

文档

作者

Matthew Heroux
查看参与此项目的贡献者列表

贡献

PHPMarkup是一个开源项目。如果您发现问题或想讨论新功能或改进,请创建一个问题,并在可能的情况下创建一个pull request。使用测试docker镜像轻松贡献。

许可

PHPMarkup遵循MIT许可证 - 有关详细信息,请参阅LICENSE文件。

致谢

感谢Andy Beak提供代码审查。感谢Bob Crowley提供项目管理建议。感谢Aswin Vijayakumar提供的有用评论。感谢White Whale Web Services的Alexander Romanovich对免费类XPHP的工作。所有这些都导致了此实现的变化。