braesident/vendor-assets

Discover and serve JavaScript, CSS, and image assets from Composer packages

Maintainers

Package info

github.com/braesident/vendor-assets

Homepage

pkg:composer/braesident/vendor-assets

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-06-28 17:44 UTC

This package is auto-updated.

Last update: 2026-06-29 06:00:03 UTC


README

VendorAssets discovers JavaScript, CSS, and image files from local asset folders and Composer dependencies. It can render JS/CSS tags or return asset contents for a controller/route.

The package works with:

  • local files in assets/js/**/*.js
  • local files in assets/css/**/*.css
  • local image files in assets/images/**/*.{jpg,jpeg,png,gif,webp,svg,ico}
  • matching files from Composer dependencies in require below vendor/<vendor>/<package>/**, excluding nested vendor directories
  • optional dev-only asset packages listed in extra.vendor-assets.packages

Installation

composer require braesident/vendor-assets

JavaScript

<?php

use braesident\VendorAssets\JsAsset;

echo JsAsset::getScriptTags('/asset?identifier=', 'dropdown');
echo JsAsset::getAsset('dropdown.js', true);

CSS

<?php

use braesident\VendorAssets\CssAsset;

echo CssAsset::getStyleTags('/asset?identifier=', 'layout');
echo CssAsset::getAsset('layout.css', true);

Images

<?php

use braesident\VendorAssets\ImageAsset;

$urls = ImageAsset::getUrlArray('/asset?identifier=', 'logo');

header('Content-Type: '.ImageAsset::getMimeType('logo.png'));
echo ImageAsset::getAsset('logo.png');

Public API

  • JsAsset::getAssets(): array
  • JsAsset::getScriptTagArray(string $path = '', string ...$matches): array
  • JsAsset::getScriptTags(string $path = '', string ...$matches): string
  • JsAsset::getAsset(string $path, bool $minify = false): string
  • CssAsset::getAssets(): array
  • CssAsset::getStyleTagArray(string $path = '', string ...$matches): array
  • CssAsset::getStyleTags(string $path = '', string ...$matches): string
  • CssAsset::getAsset(string $path, bool $minify = false): string
  • ImageAsset::getAssets(): array
  • ImageAsset::getUrlArray(string $path = '', string ...$matches): array
  • ImageAsset::getAsset(string $path): string
  • ImageAsset::getMimeType(string $path): string

Asset Names

Asset identifiers use the file name without extension. If a Composer dependency contains an asset name that already exists, the dependency asset can appear as <vendor>.<package>.<filename>.

Path arguments support regular path prefixes like /asset and query-style prefixes like /asset?identifier=.