Skip to content

Repository files navigation

icanhazstring/tempa-php

Build Status

What for?

You all came across some *.dist or *.skel files of some sort. This library can be used to replace every existing substitute in those files as well as simply list them.

Install

To install this library simply use composer.

$ composer require icanhazstring/tempa-php

After you have done this you need to create a tempa.json file inside you project. This file holds some basic information about the template files.

Here is an example

{
"fileExtensions": ["dist", "skel"],
"prefix": "{$",
"suffix": "}"
}

Usage

Scan

You can scan a directory or single file using the scan command.

$ vendor/bin/tempa file:scan <dir> [<config>]

You can deliver every other config you want. By default the script will take the tempa.json from the location you executed the script.

$ vendor/bin/tempa file:scan test/Demo
$ vendor/bin/tempa file:scan test/Demo test/Demo/tempa.json
Scanning for template files in: /home/icanhazstring/tempa-php/test/Demo
=======================================================================
2/2 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
/home/ando/tempa-php/test/Demo/Sub/test.php.dist
------------------------------------------------
Line 3 :'database' =>'{$database}',
Line 4 :'username' =>'{$user}'
/home/ando/tempa-php/test/Demo/test.php.dist
--------------------------------------------
Line 3 :'placeholder' =>'{$superAwesome}'

Substitute

To replace stuff run the following:

$ vendor/bin/tempa file:substitute [-f|--mapfile [MAPFILE]] [--] <dir> [<config>] [<map>]... 
$ vendor/bin/tempa file:substitute test/Demo/
$ vendor/bin/tempa file:substitute test/Demo/ --mapfile=test/Demo/maps/map.[json|php]
$ vendor/bin/tempa file:substitute test/Demo/ test/Demo/tempa.json database=localhost user=icanhazstring superAwesome=mega Processing template files in: /home/icanhazstring/tempa-php/test/Demo
=====================================================================
2/2 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%

Interactive

You can replace every with an interactive mode:

$ vendor/bin/tempa file:interactive test/Demo
$ vendor/bin/tempa file:interactive test/Demo test/Demo/tempa.json
Interactive substitution for template files in: /home/icanhazstring/tempa-php/test/Demo
=======================================================================================
Found 3 substitutes
-------------------
database:
>
...

About

Template file parsing library

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages