Search by

codesaur / template

codesaur

Бие даасан PHP template engine. Хөгжлийн явцад Twig-ийн синтаксаас санаа авч чадамжуудаа өргөжүүлсэн. Filters, functions, macros, expression parser бүхий хөнгөн, хурдан загварчлагч

Package info

github.com/codesaur-php/Template

Homepage

pkg:composer/codesaur/template

Statistics

Installs: 1 793

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

v5.0.0 2026-09-09 09:17 UTC

README

CI PHP Version License

Агуулга / Table of Contents

  1. Монгол | 2. English | 3. Getting Started

1. Монгол тайлбар

Бие даасан PHP template engine. Хөгжлийн явцад Twig template engine-ийн синтакс, дизайн загвараас санаа авч чадамжуудаа өргөжүүлсэн.

codesaur/template нь codesaur ecosystem-ийн нэг хэсэг бөгөөд энгийн текст-суурьтай темплейтээс эхлээд if/for/macro/filter бүхий хүчирхэг темплейт хүртэл дэмждэг минимал PHP template engine юм.

Багц нь дараах class-уудаас бүрдэнэ:

  • MemoryTemplate - бүрэн template engine (if, for, filter, function, macro, expression parser)
  • FileTemplate - файлын системээс template уншиж рэндэрлэх (MemoryTemplate-ийг өргөтгөнө)
  • Markup - autoescape-аас чөлөөлөгдсөн ("safe") HTML утгын wrapper

Autoescape: {{ }} нь Twig-тэй адил string утгыг анхдагчаар HTML escape хийнэ. HTML гаргах газарт |raw ашиглана: {{ record.content|raw }}.

Дэлгэрэнгүй мэдээлэл

2. English description

A self-contained PHP template engine. During its evolution, adopted syntax and design patterns inspired by Twig.

codesaur/template is part of the codesaur ecosystem - a minimal PHP template engine supporting everything from simple text placeholders to powerful templates with if/for/macro/filter syntax.

The package consists of these classes:

  • MemoryTemplate - full template engine (if, for, filter, function, macro, expression parser)
  • FileTemplate - file-based template loader (extends MemoryTemplate)
  • Markup - wrapper marking an HTML value as "safe" (exempt from autoescape)

Autoescape: like Twig, {{ }} HTML-escapes string values by default. Use |raw where actual HTML must be output: {{ record.content|raw }}.

Documentation

3. Getting Started

Requirements

  • PHP 8.2.1+ (json, mbstring extensions)
  • Composer

Installation

Composer ашиглан суулгана / Install via Composer:

composer require codesaur/template

Quick Example

use codesaur\Template\MemoryTemplate;

// Бүрэн engine - if, for, filter, function бүгд дэмжинэ
$page = new MemoryTemplate(
    '{% for item in items %}<li>{{ item|upper }}</li>{% endfor %}',
    ['items' => ['a', 'b', 'c']]
);
echo $page;
use codesaur\Template\FileTemplate;

// Файл суурьтай template
$page = new FileTemplate('page.html', [
    'title' => 'Hello',
    'items' => ['a', 'b', 'c']
]);
$page->addFunction('link', fn($route) => "/app/$route");
echo $page;
<!-- page.html -->
<h1>{{ title }}</h1>
<a href="{{ link('home') }}">Home</a>
<ul>
{% for item in items %}
    <li>{{ item }}</li>
{% endfor %}
</ul>
// {{ }} escape хийнэ / {{ }} escapes; итгэлтэй HTML-д |raw / use |raw for trusted HTML
$page = new MemoryTemplate('<p>{{ text }}</p>{{ html|raw }}', [
    'text' => '<b>x</b>',  // -> <p>&lt;b&gt;x&lt;/b&gt;</p>
    'html' => '<b>x</b>',  // -> <b>x</b>
]);
$page->setAutoEscape(false); // HTML биш template-д унтраана / disable for non-HTML templates

Running Tests

Тест ажиллуулах / Run tests:

composer test

Changelog

Contributing & Security

License

This project is licensed under the MIT License.

Author

Narankhuu codesaur@gmail.com
https://github.com/codesaur

codesaur Ecosystem: https://codesaur.net