anax/view

Anax 视图模块,收集和渲染视图。


README

Latest Stable Version Join the chat at https://gitter.im/mosbth/anax

Build Status CircleCI

Build Status Scrutinizer Code Quality Code Coverage

Maintainability Codacy Badge

Anax 视图模块为 Anax 网站提供视图结构。

关于视图、术语和结构

视图,也称为模板文件,是纯 PHP 文件,其目的是将内容渲染到 HTML 结构上以创建网页。

工作原理如下

  1. 网页内容被收集为视图集合。
  2. 视图集合在路由回调和控制器中创建。
  3. 视图是变量(内容)的组合,通常称为 $data,它被提供给模板文件,执行并渲染数据到 HTML 结构。
  4. 每个视图是网页上的一个小部分 HTML 和内容,并在网页上渲染。

您可以在目录 view/anax/v2 中查看视图的示例。

视图在布局中渲染

视图通过结构化布局以有序方式渲染。这个布局本身也是一个视图(模板文件和数据),它只是渲染更多视图的视图。

您可以在 view/anax/v2/layout 中查看布局视图的示例。

上面的布局视图将网页的每个部分组织为区域。每个视图在区域中渲染。

此代码显示了如何在布局文件中设置一般区域,以及如何渲染属于此区域的视图。

<!-- flash -->
<?php if (regionHasContent("flash")) : ?>
<div class="outer-wrap outer-wrap-flash">
    <div class="inner-wrap inner-wrap-flash">
        <div class="row">
            <div class="region-flash">
                <?php renderRegion("flash") ?>
            </div>
        </div>
    </div>
</div>
<?php endif; ?>

当您将视图添加到集合中时,您可以可选地添加一个区域和一个排序值。这决定了视图渲染的位置(区域)和顺序。

视图的模板文件

模板文件是一个普通的 PHP 文件。这里是模板文件 anax/v2/article/default

<?php

namespace Anax\View;

/**
 * Render content within an article.
 */

// Show incoming variables and view helper functions
//echo showEnvironment(get_defined_vars(), get_defined_functions());

// Prepare classes
$classes[] = "article";
if (isset($class)) {
    $classes[] = $class;
}


?><article <?= classList($classes) ?>>
<?= $content ?>
</article>

命名空间使得可以访问内置视图辅助函数的列表,例如用于转义输出或创建框架或资产的 URL 的辅助函数。

namespace Anax\View;

注释部分可以取消注释以进行调试,以查看可用的辅助函数和变量。

// Show incoming variables and view helper functions
//echo showEnvironment(get_defined_vars(), get_defined_functions());

然后,通过传入变量进一步准备内容。

// Prepare classes
$classes[] = "article";
if (isset($class)) {
    $classes[] = $class;
}

然后最终渲染输出。

<article <?= classList($classes) ?>>
<?= $content ?>
</article>

这就是模板文件的一般流程。

视图辅助函数

文件 View/ViewHelperFunctions 包含辅助函数,这些函数简化了模板文件中的工作。

这里有一些基本辅助函数。

查看辅助文件以获取详细信息。

愚蠢的视图或肥胖的视图

视图可以是“愚蠢的”,只从框架接收输入,并用 HTML 代码渲染它。

视图也可以是“肥胖的”,或者说可能不是那么“聪明”,并回调到框架。

一般建议使用愚蠢的视图,不要回调到框架。

视图类型

视图通常可以渲染任何类型的输出,而不仅限于 HTML。

许可证

此软件携带 MIT 许可证。有关详细信息,请参阅 LICENSE.txt

 .  
..:  Copyright (c) 2013 - 2019 Mikael Roos, mos@dbwebb.se