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.