Download the PHP package surgiie/laravel-blade-cli without Composer

On this page you can find all versions of the php package surgiie/laravel-blade-cli. 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 laravel-blade-cli

laravel-blade-cli

Render and save textual files from the command line using Laravel's Blade engine.

tests

Introduction

An PHP command-line interface for Laravel Blade to render template text files from your command line. Embed any Laravel Blade syntax in any text file and render it with this CLI. It's the perfect for generating CI/CD configuration files, configuration files, code templates, you name it.

Installation

To install, use composer globally:

composer global require surgiie/laravel-blade-cli

Use

As an example, let's say you have a file named person.yml in your current directory with the following content:

You can render this file using the following command:

This will render the file and save it in the same directory with the name person.rendered.yml with the following contents:

Run With Docker:

If you don't have or want to install php, you can run use the provided docker script to spin up a container which you can utilize the cli with.

Note - This method of use does require you to mount the directory/files you need in order to render them. The working directory of the container is /app so you can mount your files to this directory.

Install Docker Script:

Then you can render a file like so:

Consider creating a bash function to ease the process of mounting and copying files to and from the container.

Custom Filename

By default, all files will be saved to the same directory as the file being rendered with the name <filename>.rendered.<extension> or simply <filename>.rendered if no extension is present, this is to prevent overwriting the original file. To use a custom file name or change the directory, use the --save-to option to specify a file path:

Note: The cli will automatically create the necessary parent directories if it has permission, otherwise an error will be thrown.

Variable Data

There are three options for passing variable data to your files being rendered, in order of precedence:

Note: The --from-yaml, --from-json, and --from-env options can be passed multiple times to load from multiple files if needed.

Variable Naming Convention

Your env, YAML, and JSON file keys can be defined in any naming convention, but the actual variable references MUST be in camel case. This is because PHP does not support kebab case variables and since this is the format used in command line options, all variables will automatically be converted to camel case. For example, if you pass an option or define a variable name in your files in any of these formats: favorite-food, favoriteFood, or favorite_food, the variable for that option should be referenced as $favoriteFood in your files.

Command Line Variable Types

The following types of variables are currently supported:

Note: Since variable options are dynamic, "negate/false" options are not supported. Instead, use something like {{ $shouldDoSomething ?? false }} in your files to default to false and use true options to "negate" the value.

Force Write

If you try to render a file that already exists, an exception will be raised. To force overwrite an existing file, use the --force flag:

Dry Run/Show Rendered Contents

To view the contents of a rendered file without saving it, use the --dry-run flag when rendering a single file:

laravel-blade render example.yaml --some-var=example --dry-run

This will display the contents of example.yaml on the terminal without saving it.

Processing an entire directory of files

You can also pass a directory path instead of a single file when running the command. This can be useful when you want to render multiple template files at once.

laravel-blade render ./templates --save-dir="/home/bob/templates" --some-data=foo

Note: This command will prompt you for confirmation. To skip confirmation, add the --force flag.

Note: When rendering an entire directory, the --save-dir option is required to export all rendered files to a separate directory. The directory structure of the directory being processed will be mirrored in the directory where the files are saved. In the above example, /home/bob/templates will have the same directory structure as ./templates.

Cached/Compiled Directory

When compiling a file down to plain php, the compiled/cache file is stored in the following possible locations depending on how the cli is being used:

Clean Cached Compiled Directory

If you are working with large files or have a lot of files to render, the cached/compiled files directory can grow quite large, consider cleaning it regularly.

To clean the cached/compiled files directory of files older than 24 hours, use the cache:clean command:

Clean Cached Compiled Directory By Custom Age

To clean the cached/compiled files directory of files older than a specific number of minutes, use the --expires-minutes option, for example, to clean files older than 60 minutes:

Force Clean Cached Compiled Directory

To force remove all fileds from cached/compiled files directory regardless of age, use the --force flag:

Require Files Before Rendering

If you have custom code or logic you need to execute before rendering a file, you can use the --require option to require a file before rendering. This can be useful for loading custom classes or functions that can be used in your files. For convenience, a special $__command variable is available in the required file which contains the command instance, this can be useful for accessing the command's options and arguments or if you need output text to the console. Your variable data will also be available in the required file. You may also find the need to mutate the variable data before rendering, you can do this in the required file by returning the mutated variables in an array to be merged into the existing variable data.

For example, if you have a file named required-file.php with the following content:

Dry Run/Show Rendered Contents

To view the contents of a rendered file without saving it, use the --dry-run flag when rendering a single file:

laravel-blade render example.yaml --some-var=example --dry-run

This will only display the contents of example.yaml and wont save a rendered file.

Processing An Entire Directory Of Files

You can also pass a directory path instead of a single file when running the command. This can be useful when you want to render multiple template files at once.

laravel-blade render ./templates --save-to="/home/bob/templates" --some-data=foo

Note: When rendering an entire directory, the --save-to option is required to export all rendered files to a separate directory. The directory structure of the directory being processed will be mirrored in the directory where the files are saved. In the above example, /home/bob/templates will have the same directory structure as ./templates.

X-Blade Components

Anonymous Rendered Components

If you are using anonoymous x- blade components in your files, you must specify the --component-path option to specify a path to where your components are located.

For example passing --component-path="/home/components" will look for components in /home/components and render them. For example, if you have a component named example.blade.php

in the components directory, you can use it in your files like so:

Namespacing Anonymous Components

If you wish to use namespace components such as <x-namespace::component-name /> you can use a : delimiter to specify the namespace and component name in the --component-path option.

For example, --component-path="namespace:/home/components".

Class Based Components

Since the CLI is not aware of your classes, it wont know how to resolve your components, to get around this you'll have to manually register your classes via --require file:

Then you can use the component in your files like so:

Contribute

Contributions are always welcome in the following manner:

License

The project is licensed under the MIT license.


All versions of laravel-blade-cli with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
illuminate/validation Version ^10.0
illuminate/view Version ^10.0
laravel-zero/framework Version ^10.2
laravel/prompts Version ^0.1.11
nunomaduro/termwind Version ^1.15.1
spatie/invade Version ^2.0
vlucas/phpdotenv Version ^5.5
spatie/laravel-directory-cleanup Version ^1.9
surgiie/transformer Version ^0.3.0
symfony/yaml Version ^6.2
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 surgiie/laravel-blade-cli contains the following files

Loading the files please wait ....