Download the PHP package hx/fusion-php without Composer
On this page you can find all versions of the php package hx/fusion-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download hx/fusion-php
More information about hx/fusion-php
Files in hx/fusion-php
Informations about the package fusion-php
Fusion for PHP
Fusion is a bare-bones asset pipelining library for PHP. It offers:
- Simple dependency in which assets can require other assets.
- Preprocessing of CoffeeScript, SASS/SCSS and LESS files.
- Compilation of large numbers of files into single files with minification via UglifyJS.
Dependencies
Specify dependencies by requiring other files in comments at the tops of your asset files:
You can also require globs of files (note the alternate syntax so that */
doesn't break the comment):
Generally, you can use either style of comments, as long as the format supports it. For example, vanilla CSS doesn't support single-line //
comments.
Processing
This code assigns a new instance of Hx\Fusion\Asset\StyleSheet\Sass
to $file
, which is a subclass of Hx\Fusion\Asset
. Subclasses are selected based on file extensions.
To specify a base directory, include a second argument. Dependency paths will be evaluated relative to the given base path. The file's directory is used as a base if this argument is omitted.
The Hx\Fusion\Asset
class gives you several basic methods to retrieve information about your file:
You can get the raw, filtered (processed), and compressed (minified) document strings:
Collections
The above methods are also available on the Hx\Fusion\AssetCollection
class, which represents ordered collections of assets.
Consider these three files a.coffee
, b.coffee
and c.coffee
:
We could create a collection a couple of ways:
To get collections of dependencies:
As illustrated above, the dependenciesAndSelf()
method returns a collection including the instance on which it was called. This is most useful when combining an asset with its dependencies. Collections support the same output methods as single assets (raw()
, filtered()
, and compressed()
):
This will output the following combined, minified JavaScript:
Exceptions
Fusion exceptions live in the Hx\Fusion\Exceptions
namespace, and are subclasses of Hx\Fusion\Exception
.
Processing files
These exceptions may be thrown when processing a file with an external binary using filtered()
or compressed()
methods.
BadInterpreter
Thrown when an external binary is not found or not executable.
SyntaxError
Thrown when an external binary exits with a code other than 0, presumably due to a syntax error in your asset. The exception's message will include the data sent to STDERR
by the interpreter.
Collating dependencies
These exceptions may be thrown when attempting to collate a file's dependencies using dependencies()
or dependenciesAndSelf()
methods.
CircularDependency
Thrown when a file's dependency depends on that file, e.g. if A requires B and B requires A.
MissingDependency
Thrown when a dependency specified by require
doesn't exist.