Skip to content

designcise/manifest-json

Repository files navigation

Designcise\ManifestJson

CI Maintainability Test Coverage

PHP manifest.json parser/loader.

Installing

composer require designcise/manifest-json

Note

Requires PHP 8.0 or later.

Example

use Designcise\ManifestJson\ManifestJson;

$manifest = new ManifestJson('path/to/manifest/'); // defaults to `manifest.json`
// or $manifest = new ManifestJson('path/to/manifest/my-manifest.json');

$entry = $manifest->get('entry.js');
$metadata = $manifest->getAll();
$css = $manifest->getAllByType('css');
$images = $manifest->getAllByTypes(['jpg', 'png']);
$js = $manifest->getAllByKey('*.js');
$criticalJs = $manifest->getAllByKeyBasename('critical-*.js');

API

static from(string $dirOrFile): self

Static method to load manifest.json file from specified directory. If only directory is specified then it is assumed that file name is manifest.json by default, otherwise the specified name is used. For example:

ManifestJson::from('path/to/manifest/'); // defaults to `manifest.json`
ManifestJson::from('path/to/manifest/my-manifest.json');

get(string $key): string

Gets the manifest.json metadata for the specified $key.

getAll(): array

Get all entries in the manifest.json file as an array.

getAllByType(string $type): array

Gets all files with the specified file extension (for e.g. css, js, etc.) as an array.

getAllByTypes(array $types): array

Gets all files with the specified file extensions (e.g. ['css', 'js'], etc.) as an array.

getAllByKey(string $key): array

Gets all files that match the specified key. It looks for a full match in the manifest entries' key. It can optionally have wildcard using asterisk (e.g. *.js, *index*, etc.).

getAllByKeyBasename(string $key): array

Gets all files that match the trailing name component of path in the manifest entry's key. It can optionally have wildcard using asterisk (e.g. *.js, index*, etc.).

Tests

To run the tests you can use the following commands:

Command Type
composer test PHPUnit tests
composer style CodeSniffer
composer style-fix CodeSniffer Fixer
composer md MessDetector
composer check PHPStan

Contributing

License

Please see License File for licensing information.