Download the PHP package qoliber/tsuku without Composer

On this page you can find all versions of the php package qoliber/tsuku. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package tsuku

Tsuku (つく)

A lightweight PHP templating library for transforming data into ANY text format

Tsuku is a powerful template processing library built with a clean Lexer → Parser → Compiler architecture. Transform your data into CSV, XML, JSON, XSD, or any text format you need using simple, intuitive templates.

Perfect for e-commerce exports, API responses, configuration files, and data transformations.

Features

Performance

Tsuku is fast - designed for high-volume data transformations:

Benchmark Performance Throughput
Simple templates 0.2ms per render ~5,000 renders/sec
Complex templates 1.0ms per render ~1,000 renders/sec
1,000 variables 1.8ms per render ~550 renders/sec
CSV export (1,000 products) 3.9ms per export ~250 exports/sec

Real-world capacity:

Run benchmarks yourself:

See benchmarks/ for detailed performance tests.

Requirements

Installation

Quick Start

Simple Variables

Loops with @for

Conditionals with @if and @else

Smart Object/Array Access

Custom Functions

Streaming Large Datasets

For large catalogs (10k+ rows) where holding the whole rendered output in memory is impractical, use processToStream. It renders the template incrementally — header once, each row in turn, footer once — and writes each piece through a callback as soon as it's ready.

Constraints:

Real-World Examples

CSV Export with Escaping

XML Product Catalog

YAML Configuration

HTML Product List with XSS Protection

Template Syntax

Variables

Use {variableName} or {object.property} for dot notation:

Smart Object/Array Access:

For Loops

With key/value (value first, then key):

Conditionals

If/Else:

Unless:

Match (Pattern Matching):

Match with multiple values:

Supported operators: >, <, >=, <=, ==, !=

Built-in Functions

String functions:

Number functions:

Array functions:

Escaping functions:

Date/Utility functions:

Custom Functions

Register your own:

Deep Nesting

Nest directives as deep as you need:

Architecture & Design

Tsuku uses a clean three-stage compiler pipeline inspired by traditional programming language design:

The Pipeline

1. Lexer (Lexical Analyzer)

What it means: "Lexer" comes from "lexical analysis" - breaking text into meaningful chunks

Location: src/Lexer/Lexer.php

The Lexer reads the raw template string character by character and breaks it into tokens (meaningful units):

Why? Makes parsing easier by converting a string into structured chunks.

2. Parser (Syntax Analyzer)

What it means: Builds a tree structure showing how pieces relate to each other

Location: src/Ast/Parser.php

The Parser takes tokens and builds an AST (Abstract Syntax Tree) - a tree structure representing the template's logical structure:

Why? The tree structure makes it easy to handle nesting and execute directives in the correct order.

3. Compiler (Code Generator)

What it means: Walks the tree and generates the final output

Location: src/Compiler/Compiler.php

The Compiler walks the AST tree using the Visitor Pattern and generates the output string:

Why? Clean separation: data lookup, conditionals, loops all handled in one place.

Key Concepts Explained

AST (Abstract Syntax Tree)

Node

Token

Visitor Pattern

Benefits of This Architecture

Exact whitespace preservation - Lexer captures everything ✅ Proper nesting validation - Parser builds correct tree or throws error ✅ Clean separation of concerns - Each stage has one job ✅ Easy to extend - Add new node types without breaking existing code ✅ Fast execution - Single pass through the tree ✅ Type safety - PHP 8.1+ types ensure correctness

Class Naming Conventions

Tsuku follows industry-standard naming for compiler components:

Class Name Purpose Location
Lexer Lexical analyzer - breaks text into tokens src/Lexer/
Token One meaningful unit (like a word) src/Lexer/Token.php
TokenType Enum of all token types src/Lexer/TokenType.php
Parser Syntax analyzer - builds AST from tokens src/Ast/Parser.php
*Node AST tree nodes (TextNode, ForNode, etc.) src/Ast/
NodeVisitor Interface for visiting AST nodes src/Ast/NodeVisitor.php
Compiler Code generator - walks AST to create output src/Compiler/Compiler.php
Tsuku Main API entry point src/Tsuku.php

Naming Philosophy:

How It All Works Together

This architecture is the same used by:

Further Reading:

Development

License

MIT License - see LICENSE file for details

Credits

Created by qoliber - Like a hummingbird (koliber), swift and precise in data transformation.

Tsuku (つく) means "to create" or "to make" in Japanese, reflecting the library's purpose of creating text output from data.


All versions of tsuku with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package qoliber/tsuku contains the following files

Loading the files please wait ...