search hotlink icon profile hotlink icon

On This Page

Requirements

Fusion requires at least a PHP 8.1.0 environment to run. Also, make sure that the required curl and the recommended zip extensions are available.

Package

Download the archive file of the latest release from GitLab to a location of your choice and extract it there. In the root directory of the extracted folder you will find the "fusion" file. It's the default initial point for any interaction via command line interface (CLI). In addition to the filename, the interaction via CLI also requires at least a trailing task command.

Since Fusion itself is also a package, we can take it as an example and try the explained interaction recursively. In your terminal, set the working directory to the extracted folder and execute the fusion file by passing the build task command:

                php fusion build
            

Depending on the latest version, the output should be similar:

                 ___ _   _ ___ ___ ___  _  _
| __| | | / __|_ _/ _ \| \| |
| _|| |_| \__ \| | (_) | .` |
|_|  \___/|___/___\___/|_|\_|
------
boot via command line interface
execute build id

image
image internal metas
[=| valvoid/fusion | 1.0.0

build
build external metas
...
[+| valvoid/fusion | 1.0.0

categorize
categorize metas efficiently
recycle:
[=| valvoid/fusion | 1.0.0

download
cache external packages

copy
cache internal packages

extend
refresh cached extension files
[=| valvoid/fusion | 1.0.0

inflate
inflate current packages
[=| valvoid/fusion | 1.0.0

register
register internal packages
[=| valvoid/fusion | 1.0.0

snap
persist implication and references
production:

stack
stack new state

shift
shift state
            

Internally, each task is a single action object that can be part of a group to handle complex workloads, such as the package manager update triggered above.

The passed build task is actually responsible for external metadata, for package info files outside the current project/package root directory, and requires helper tasks to perform the update. As the output above shows, the group starts with the image helper task, which is responsible for internal metadata files. Files inside the root directory. Once both tasks are complete, the categorize helper task evaluates the results, and in this example, it decides to recycle the same valvoid/fusion | 1.0.0 package.

After that, since you already have the latest Fusion version, the helper tasks extend, inflate, and register regenerate the cache on the local package again.

Global Interaction

In most cases, your working directory will not be the root of the extracted Fusion folder, but any within a current project or one of its dependencies. Because of the full path filename argument, the default interaction then becomes a bit bulky, such as:

                php /full/path/fusion build
            

To prevent this, you can, for example, add the extracted package manager folder to the system-wide PATH variable, what will remove the full path parts:

                php fusion build
            

For details about the variable extension, see your operating system documentation. In addition, for maybe easier maintenance, you can also rename the extracted release folder to "fusion" or whatever you like.

Once done, let's take Fusion as an example package again. In your terminal, set the working directory to any within the extracted package manager folder. Run the above command and test that Fusion is globally accessible.

Shebang

Actually a kind of standard, but if you are using a Unix-like operating system, the previous line can also start with the package manager part:

                fusion build
            

As not everyone can use this feature, all parts are used in the rest documentation.