承接 arhone/template 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

arhone/template

Composer 安装命令:

composer require arhone/template

包简介

Библиотека для работы с шаблонами (PHP 7)

README 文档

README

Нативный шаблонизатор (PHP 7)

Шаблонизатор предназначен для удобного разделения бизнес логики и логики представления.

Позволяет подключать файлы шаблонов и передавать в них готовые данные.

Установка

composer require arhone/templater

<?php

use arhone\templater\Templater;
include 'vendor/autoload.php';

$templater = new Templater();

Примеры

Рендер шаблона
<?php

echo $templater->render(__DIR__ . '/template/default.tpl', [
    'title' => 'Мой сайт'
]);

template/default.tpl:

<?php
/**
 * @var \arhone\templater\TemplaterInterface $this
 * @var string $title Название сайта
 */
?>
<html>
    <title><?=$title?></title>
</html>
Указание нескольких шаблонов

Допустим у вас есть модуль, у него есть шаблон по умолчанию, но пользователь хочет заменить его своим шаблоном.

Что бы сохранить исходный шаблон, вы можете указать путь к дополнительному шаблону, если он существует, то шаблонизатор подключит его, если нет, то подключиться стандартный.

<?php

echo $templater->render([
    __DIR__ . '/template/extend/myModule/default.tpl', // Новый
    __DIR__ . '/myModule/template/default.tpl' // Стандартный
]); // Подключиться template/extend/myModule/default.tpl если он существует
Использование общих блоков

Такие переменные доступны во всех шаблонах.

Это позволяет наследовать шаблоны и переопределять их блоки.

Установка значения блока
<?php

$templater->body = 'Содержимое';
$templater->set('body', 'Содержимое'); // Тоже самое

echo $templater->body;
Дописывание содержимого в блок
<?php

$templater->body .= ' продолжение';
$templater->add('body', ' продолжение'); // Тоже самое

echo $templater->body;
Получение содержимого
<?php

echo $templater->body;
echo $templater->get('body'); // Тоже самое
Удаление содержимого
<?php

$templater->body = null;
$templater->delete('body'); // Тоже самое
unset($templater->body); // Тоже самое
Установка значения по умолчанию
<?php
/**
 * @var \arhone\templater\TemplatingInterface $this
 */
?>
<html>
    <title><?=$this->title ?? 'Заголовок'?></title>
    <body>
    <?php $this->default('body')?>
        <div>Содержимое</div>
    <?=$this->end('body')?>
    </body>
</html>

Метод default добавляет значение по умолчанию, это значение будет использовано в случае если свойство не было задано.

<?php

$templater->body = 'Значение';
$templater->default('body', 'По умолчанию');
echo $templater->body; // Выведет "Значение"
<?php

$templater->body = 'Значение';
$templater->default('body', 'По умолчанию');
unset($templater->body);
echo $templater->body; // Выведет "По умолчанию"

Таким образом можно переопределять блоки стандартных шаблонов

<?php

echo $templater->render(__DIR__ . '/slave.tpl');
<?php
/**
 * Шаблон slave.tpl
 * @var \arhone\templater\TemplatingInterface $this
 */
?>

<?php $this->set('body')?>
    <div>Содержимое</div>
<?php $this->end('body')?>

<?=$this->render(__DIR__ . '/default.tpl')?>
<?php
/**
 * Шаблон default.tpl
 * @var \arhone\templater\TemplatingInterface $this
 */
?>

<?php $this->default('body')?>
    Значение по умолчанию
<?=$this->end('body')?>
htmlspecialchars() с исключениями

Когда нужно разрешить отрисовывать только некоторые html теги, например p или code

<?php
/**
 * @var \arhone\templater\TemplatingInterface $this
 */
?>

<?php $this->add('body')?>

    <strong>strong</strong>
    <b>b</b>
    <p>p</p>
    <div class="test">div</div>
    <img src="" alt="img">
    <code class="html"><div>div</div></code>

<?=$this->specialChars($this->end('body'), [
    'strong',
    'p',
    'img' => ['src', 'alt'],
    'code' => ['class']
])?>

Для всего остального есть PHP :)

统计信息

  • 总下载量: 66
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-10-22

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固