tflori/syna
Composer 安装命令:
composer require tflori/syna
包简介
Library for rendering native php templates
README 文档
README
PHP library for rendering native php templates with sections, inheritance and helpers.
This library is inspired by aura/view and league/plates. Both have advantages against each other and both are lacking some major features.
Að sýna means to show in Icelandic.
Helpers
Both libraries are missing a functionality to not register each helper. Syna has the ability to register namespaces
where your helpers are placed. Adding the namespace App\ViewHelper would load App\ViewHelper\Date for
$view->date().
Layouts
Syna also provides the ability to use layouts as described by the TwoStepView pattern. Other then extending views from inside a view (suggested by other libraries like league/plates, illuminate/blade etc.) you should define the layout in your controller. The separation of concerns between extending views and wrapping a html snipped into another one is logic that should not be decided from views (e. g. loading the content of a modal dialog or loading a full page with navigation, header and footer).
Named Locators
Extending Views
Installation
Like all my libraries: only with composer
$ composer require tflori/syna
Basic usage
<?php use Syna\Factory; use Syna\HelperLocator; use Syna\ViewLocator; $viewLocator = new ViewLocator(__DIR__ . '/resources/views'); $layoutLocator = new ViewLocator(__DIR__ . '/resources/layouts'); $helperLocator = new HelperLocator(); $templates = new Factory($viewLocator, $helperLocator, $layoutLocator); echo $templates->render('pages/home', [], 'fullPage');
layouts/fullPage.phtml
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <?= $v->fetch('partials/navbar') ?> <div id="content"> <?= $v->section('content') ?> </div> </body> </html>
views/pages/home
<?php $v->extends('pageWithTeaser'); ?> <?php $v->start('teaser') ?> <img src="teaser.jpg" /> <div class="teaser-content"> <h2>Title for teaser</h2> <p>Lorem ipsum dolor sit amet...</p> </div> <?php $v->end(); ?> <div class="card">Lorem ipsum dolor sit amet...</div> <div class="card">Lorem ipsum dolor sit amet...</div> <p>what ever...</p>
views/pageWithTeaser
<div class="teaser">
<?= $v->section('teaser') ?>
</div>
<?= $v->section('content') ?>
Please also have a look at the example for a more concrete example and at the tests for the documented examples.
tflori/syna 适用场景与选型建议
tflori/syna 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.2k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2018 年 11 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 tflori/syna 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tflori/syna 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1.2k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-11-04