PHPackages                             ymcatwincities/vendor\_stream\_wrapper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ymcatwincities/vendor\_stream\_wrapper

ActiveDrupal-module[Utility &amp; Helpers](/categories/utility)

ymcatwincities/vendor\_stream\_wrapper
======================================

Creates the vendor:// stream wrapper, allowing for linking/embedding of CSS and JS files in the vendor directory.

0549PHP

Since Jul 28Pushed 5y agoCompare

[ Source](https://github.com/ymcatwincities/vendor_stream_wrapper)[ Packagist](https://packagist.org/packages/ymcatwincities/vendor_stream_wrapper)[ RSS](/packages/ymcatwincities-vendor-stream-wrapper/feed)WikiDiscussions 8.x-1.x Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Vendor Stream Wrapper module
============================

[](#vendor-stream-wrapper-module)

Overview
--------

[](#overview)

Drupal and Composer working together is great for management of external libraries that can be integrated into Drupal sites. It is a good practice to have the /vendor directory outside the webroot, and this is what the[Drupal Composer template](https://github.com/drupal-composer/drupal-project) does. The problem with moving the vendor out of the webroot however comes when trying to provide public URLs to files in the /vendor directory, such as CSS or JS files that are part of an external library.

This module provides a new stream wrapper, `vendor://`, that allows for referencing of files in the vendor directory. It works much the same as the `private://` file wrapper provided by Drupal core. Along with this stream wrapper, this module sets up `*.libraries.yml` files to be parsed for `vendor://` references, as can be seen in the example below:

example.libraries.yml:

```
some_library:
  js:
    vendor://vendor-name/package-name/js/some_file.js: {}
  css:
    theme:
      vendor://vendor-name/package-name/css/some_file.css: {}

```

The module also provides a helper function, `vendor_stream_wrapper_create_url()`for resolving vendor files to public facing URLs:

```
$public_url = vendor_stream_wrapper_create_url(
  'vendor://vendor/package/file.css'
);

```

Configuration
-------------

[](#configuration)

This module will look first for the vendor first at `../vendor` then at `./vendor`. If no vendor folder is found an exception is thrown. If your vendor folder is located somewhere than either of these two locations, then you can tell the system were to find it by adding the following to settings.php:

```
$settings['vendor_file_path'] = 'path/to/vendor/folder';

```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/1388b312dca2d4c24fb3474c71a6729b13b255860ff0188b0286013bc703bf5a?d=identicon)[podarok](/maintainers/podarok)

![](https://www.gravatar.com/avatar/4558114408c700ee4fe122cf32e229c67e2a72a8da55256930a02685612572fa?d=identicon)[Open-Y-Distro](/maintainers/Open-Y-Distro)

---

Top Contributors

[![jaypan](https://avatars.githubusercontent.com/u/463560?v=4)](https://github.com/jaypan "jaypan (2 commits)")[![podarok](https://avatars.githubusercontent.com/u/563412?v=4)](https://github.com/podarok "podarok (1 commits)")

### Embed Badge

![Health badge](/badges/ymcatwincities-vendor-stream-wrapper/health.svg)

```
[![Health](https://phpackages.com/badges/ymcatwincities-vendor-stream-wrapper/health.svg)](https://phpackages.com/packages/ymcatwincities-vendor-stream-wrapper)
```

###  Alternatives

[shipmonk/name-collision-detector

Simple tool to find ambiguous classes or any other name duplicates within your project.

362.1M34](/packages/shipmonk-name-collision-detector)[bostondv/bootstrap-ninja-forms

Adds Bootstrap classes to Ninja Forms

222.2k](/packages/bostondv-bootstrap-ninja-forms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
