PHPackages                             billitech/sly - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. billitech/sly

ActiveLibrary[Templating &amp; Views](/categories/templating)

billitech/sly
=============

php template engine

0.1(7y ago)110MITPHPPHP &gt;=5.3.0

Since Feb 14Pushed 7y ago2 watchersCompare

[ Source](https://github.com/billitech/sly)[ Packagist](https://packagist.org/packages/billitech/sly)[ RSS](/packages/billitech-sly/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Introduction To Sly Template Engine
===================================

[](#introduction-to-sly-template-engine)

The sly template engine is a very powerful template engine for PHP, it is very fast both at compile and run time.

The template engine syntax by default is a bit similar to ASP.NET razor.

The sly component is independent from the Billi tech framework which means it can be used on any project.

Installing on separate project
------------------------------

[](#installing-on-separate-project)

The recommended way to install sly is via Composer:

```
composer require "billitech/sly:~0.1"

```

Basic Usage
-----------

[](#basic-usage)

```
//place at the top of your script
use Billitech\Sly\Sly;
use Billitech\Sly\FileLoader;
$loader = new FileLoader(['/path/to/your/templates']);
$sly = new Sly($loader, '/path/to/store/compiled_files');

echo $sly->render('index.sly', ['title' => 'Sly Template Ingine']);
```

Then Create a file with the name **index.sly** in the path you specify when creating the FileLoader instance and put the following code in it :

```
@( title )

```

When creating the FileLoader instance you can specify a array of paths where your templates are.

Disable caching
---------------

[](#disable-caching)

To disable caching do not specify compile path while creating sly instance, for example :

```
$sly = new Sly($loader);
```

Other configurations
--------------------

[](#other-configurations)

```
$sly->setCharset('utf8'); // Set the character encoding of your templates.
$sly->enableAutoEscape(); // Enable auto escape.
$sly->disableAutoEscape(); // Disable auto escape.
$sly->enableStrictVariables(); // Enable strict variable.
$sly->disableStrictVariables(); // Disable strict variable.
```

Auto escape is on by default.

Syntax
------

[](#syntax)

The sly template engine uses th @ symbol to indicate start of a sly statement. @( is used to start a print statement and ) is used to close a print statement i.e @( abs(-1) ). while @ is used to start a control statement and ) is used to close a control statement i.e @if( true ).

### Variable

[](#variable)

Variable passes to the the template can be access within the the template by usin the name of the variable in an expression. for example : php file

```
$sly->render('users.sly', ['users' => ['foo', 'bar', 'barz'], 'title' => 'My Users']);
```

users.sly

```

        @( title )

        @for( user in users )
            >@( user )
        @end

```

### Sly Expression

[](#sly-expression)

The sly template engine accept most valid php experessions with some few additional expressions.

#### Printing expression

[](#printing-expression)

By default the sly template use @( ) syntax to print an expression. for example @(1 + 1) will be printed as 2. everything within the curly bracket must be a valid php expression and by default the printed expression will be automatically escaped using php htmlspecialchars function if the expression returns a string or sting convertable value, or the value will be converted to JSON using php json\_encode function.

Sly template unlike other pupuler template engines, u can use any php function within an expression

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2642d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/74ba4a10d0e854207e793a5423c201cb441149c4a941caf1a5991f0de359948a?d=identicon)[billitech](/maintainers/billitech)

---

Top Contributors

[![billitech](https://avatars.githubusercontent.com/u/16030197?v=4)](https://github.com/billitech "billitech (6 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/billitech-sly/health.svg)

```
[![Health](https://phpackages.com/badges/billitech-sly/health.svg)](https://phpackages.com/packages/billitech-sly)
```

###  Alternatives

[mustache/mustache

A Mustache implementation in PHP.

3.3k44.6M291](/packages/mustache-mustache)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[whitecube/nova-flexible-content

Flexible Content &amp; Repeater Fields for Laravel Nova.

8053.0M25](/packages/whitecube-nova-flexible-content)[mopa/bootstrap-bundle

Easy integration of twitters bootstrap into symfony2

7042.9M33](/packages/mopa-bootstrap-bundle)[limenius/react-bundle

Client and Server-side react rendering in a Symfony Bundle

3871.2M](/packages/limenius-react-bundle)[symfony/ux-icons

Renders local and remote SVG icons in your Twig templates.

545.8M69](/packages/symfony-ux-icons)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
