Use teal-php to compile your .tl
files to PHP.
Getting started
In the follwing guide we'll create four files to get the first Teal-PHP Hello World app running.
1. package.json
Create an empty directory for your project and call:
npm init
This will create an empty package.json
file. In order to add teal-php
run:
npm i -S teal-php
Create a directory called site
in your project root where you put
your PHP files.
Inside this directory create a folder called _tl
. This is where the Teal templates will be placed.
/
├── build.js
├── package.json
└─┬ site/
├─┬ _tl/
│ └── page.tl
└── index.php
2. /site/index.php
In order to render a Teal template in PHP you have to include /_tl/init.php
and call the tl()
function:
Note: Don't worry that the init.php
doesn't exist yet. Teal will create for you in the next step.
3. /site/_tl/page.tl
html {
head {
title { $title }
stylesheet()
}
body {
background: teal;
color: #fff;
$children
}
}
4. /build.js
Now create a file called build.js
in your project's root directory (not the site folder). This is the place where you can configure Teal and set up additional plugins like teal-autoprefixer or teal-browserify.
var teal = ; var tl = ; // add the autoprefixer plugin:// tl.use(require('teal-autoprefixer'));
You can now build your project by running:
node build
This will create a folder called .site
. All php sources will be copied there and all .tl
will be compiled to .tl.php
files. After this step your directory should look like this:
/
├─┬ .site/
│ ├─┬ _tl/
│ │ ├── init.php
│ │ └── page.tl.php
│ └─ index.php
├── build.json
├── package.json
└─┬ site/
...
Starting a development server
Teal-php comes with a built-in development server. If you pass the
dev:true
option, teal will watch your source files and start a
PHP server.
Modify your build.js
file to read some command line arguments:
var teal = var dev = processargv2 == 'dev'var port = processargv3 var tl =
Then run node build dev 3000
to start a server. If you omit the
port, teal-php will choose a free random and automatically open a
browser window.
Options
-
docroot – Specifies where the PHP sources are located. Relative paths are resolved against the current working directory. Defaults to
"./site"
-
dest – Where the build process will put all files. If not specified, a directory right next to the
docroot
will be created (prefixed with a dot). Letting this point to same directory as asdocroot
is a valid option, too. In this case no copy operations will be performed. Defaults toundefined
-
asseturl – The URL prefix under which assets will be exposed. Defaults to
"/assets"
-
assetdest Where the assets will be stored. Relative paths are resolved against
dest
. Defaults todest + asseturl
-
tlroot – Specifies where the
.tl
are located. Relative paths are resolved against thedocroot
. Defaults to"_tl"
-
tldest – Where within
dest
the compiled .tl.php files will be stored. Defaults to"_tl"
-
ext – File extension to use for the compiled templates. Defaults to
".tl.php"
-
lib – Filename under which the Teal PHP library will be stored. Relative paths are resolved against
tldest
. Defaults toinit.php
-
php – Options to be passed to the php-proxy-middleware.