dev-master
9999999-devProject builder.
BSD-3-Clause
The Requires
The Development Requires
by Jan Pecha
Wallogit.com
2017 © Pedro Peláez
Project builder.
Download a latest package or use Composer:, (*3)
composer require deliverist/builder
Deliverist\Builder requires PHP 8.0 or later., (*4)
``` php <?php, (*5)
use Deliverist\Builder\Builder; use Deliverist\Builder\Commands; use Deliverist\Builder\Loggers;, (*6)
$builder = new Builder('/path/to/source/code', [ 'composer-install' => new Commands\ComposerInstall, 'rename' => new Commands\Rename, 'remove' => new Commands\Remove, ], new Loggers\TextLogger);, (*7)
$builder->make('composer-install') ->make('rename', ['from' => 'index.php', 'to' => 'www/index.php']) ->make('remove', ['file' => 'composer.lock']) ->make('composer-install');, (*8)
## Commands ### ApacheImports Expands clause `<!--#include file="file.txt" -->` in specified files. ``` php $builder->make('apache-imports', ['file' => 'file-to-expand.txt']); $builder->make('apache-imports', ['files' => [ 'admin.js', 'front.js', ]]);
Runs composer install in composer.json directory., (*9)
``` php $builder->make('composer-install'); $builder->make('composer-install', ['composerFile' => 'path/to/composer.json']);, (*10)
### Copy Copies specified files. ``` php $builder->make('copy', ['from' => 'old.txt', 'to' => 'new.txt']); $builder->make('copy', ['files' => [ 'old.txt' => 'new.txt', ]]); $builder->make('copy', ['paths' => [ 'old/dir' => 'new/dir', ]]);
Creates specified directories., (*11)
``` php $builder->make('create-directory', ['directory' => 'new-directory']); $builder->make('create-directory', ['directories' => [ 'new-directory', 'new-directory-2', ]]);, (*12)
### CssExpandImports Expands clause `@import 'file.css'` in specified files. ``` php $builder->make('css-expand-imports', ['file' => 'file-to-expand.txt']); $builder->make('css-expand-imports', ['files' => [ 'admin.css', 'front.css', ]]);
Replaces placeholder with Google Analytics script in file., (*13)
``` php $builder->make('google-analytics', [ 'file' => 'path/to/file.php', 'code' => 'UA-9876-5', 'placeholder' => '%% GA %%', ]); // replaces placeholder '%% GA %%' in file $builder->make('google-analytics', ['file' => 'path/to/file.html', 'code' => 'UA-9876-5']); // uses placeholder '' in file $builder->make('google-analytics', ['file' => 'path/to/file.latte', 'code' => 'UA-9876-5']); // uses placeholder {* GA *} in file, (*14)
### GoogleClosureCompiler Minifies files in online Google Closure Compiler. ``` php $builder->make('google-closure-compiler', ['file' => 'script.js']); $builder->make('google-closure-compiler', ['files' => [ 'script-1.js', 'script-2.js', ]]);
Runs lessc for compiling of LESS files., (*15)
``` php $builder->make('less-compile', ['file' => 'styles.less']); $builder->make('less-compile', ['files' => [ 'style-1.less', 'style-2.less', ]]);, (*16)
### MinifyContent Removes empty lines & whitespaces on start & end of lines. ``` php $builder->make('minify-content', ['file' => 'file.txt']); $builder->make('minify-content', ['files' => [ 'file-1.txt', 'file-2.txt', ]]);
Example:, (*17)
Input:, (*18)
{block content}
Homepage
<p>
Lorem ipsum dolor sit amet.
</p>
{/block}
Output:, (*19)
{block content}
<h1>Homepage</h1>
<p>
Lorem ipsum dolor sit amet.
</p>
{/block}
Opens URL and shows content., (*20)
``` php $builder->make('ping-url', ['url' => 'https://example.com/migrations.php']); $builder->make('ping-url', ['url' => 'https://example.com/migrations.php', 'validateSsl' => FALSE]); // disable SSL validation, (*21)
### Remove Removes file or directory. ``` php $builder->make('remove', ['file' => 'path/to/file.txt']); $builder->make('remove', ['path' => 'path/to/directory']); $builder->make('remove', ['files' => [ 'path/to/file.txt', 'path/to/directory', ]]); $builder->make('remove', ['paths' => [ 'path/to/file.txt', 'path/to/directory', ]]);
Renames file or directory., (*22)
``` php $builder->make('rename', ['from' => 'old.txt', 'to' => 'new.txt']); $builder->make('rename', ['files' => [ 'old.txt' => 'new.txt', ]]);, (*23)
### ReplaceContent Replaces content in file. ``` php $builder->make('replace-content', [ 'file' => 'file.txt', 'replacements' => [ 'from' => 'to', 'old string' => 'new string', ], ]);
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/, (*24)