chevere/danky

类型化模板系统

0.3.0 2022-12-26 13:11 UTC

This package is auto-updated.

Last update: 2024-09-20 11:53:44 UTC


README

🔔 订阅 时事通讯 以不错过有关 Chevere 的任何更新。

Chevere

Build Code size Apache-2.0 PHPStan Mutation testing badge

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Coverage Technical Debt CodeFactor Codacy Badge

什么是Danky?

Danky 是一个为 PHP 设计的类型化模板系统。与其他所有模板系统不同,在 Danky 中 模板是类

🦄 模板在构造时明确声明其作用域,$render 属性可以是 stringTemplate 类型。

<?php // Quote.php

use Chevere\Danky\Template;

class Quote extends Template
{
    public function __construct(string $text, string $author) {
        $this->render =
            <<<HTML
            <quote>"$text" --$author</quote>
            HTML;
    }
};

<<<HTML ...Heredoc 语法 字符串字面量。在 Danky 中,您可以使用所有处理多行字符串字面量的东西。Heredoc 对模板来说很棒,因为它可以评估变量,使模板易于阅读。

<?php // Home.php

use Chevere\Danky\Template;

class Home extends Template
{
    public function __construct(Template $content) {
        $this->render =
            <<<HTML
            <main>
                $content
            </main>
            HTML;
    }
};

Template 类实现了 Stringable,您可以在字符串字面量中使用任何模板对象。

<?php // index.php

use function Chevere\Danky\import;
use Home;
use Quote;

echo
    new Home(
        content: new Quote(
            text: 'Hello, world!',
            author: 'Rodolfo'
        )
    );

🥳 恭喜!您刚刚掌握了 Danky。

<main>
    <quote>"Hello, world!"</quote>
</main>

现在运行 php demo/index.php 以查看更完整的示例。

许可协议

版权所有 2022 Rodolfo Berrios A.

Chevere 采用 Apache 许可协议,版本 2.0。请参阅 LICENSE 了解完整的许可协议。

除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可的具体语言规定权限和限制,请参阅许可协议。