PHPackages                             o6web/asset-manager - 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. o6web/asset-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

o6web/asset-manager
===================

System for handling assets on O6 Web Properties sites

4.1.0(7mo ago)024PHPPHP &gt;=7.4.0

Since Oct 15Pushed 7mo agoCompare

[ Source](https://github.com/o6web/AssetManager)[ Packagist](https://packagist.org/packages/o6web/asset-manager)[ Docs](https://www.o6web.net)[ RSS](/packages/o6web-asset-manager/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (38)Used By (0)

AssetManager
============

[](#assetmanager)

Package for managing asset files used by O6 Web Properties sites. Prior to version 4.0.0, this was an internal package. We've opened it up in case it proves helpful for anyone else but future development will be based on O6's needs.

Usage
-----

[](#usage)

```
use o6web\AssetManager\AssetManager;
use o6web\AssetManager\AssetSource;

$assetManager = new AssetManager($pdo);

// Asset sources can be local paths or S3 buckets

// Source type "static" is meant for files where the filename is unique and the contents don't typically change
$source = new AssetSource(['path' => '/path/to/static/files/']);
$assetManager->setSource($source, AssetSource::TypeStatic);

// Source type "dynamic" is meant for files that change often or need to be associated with a database record, such as user-uploaded files
$source = new AssetSource(['s3Client' => $s3Client, 'bucket' => $bucket]);
$assetManager->setSource($source, AssetSource::TypeDynamic);

// Check if an asset exists
$assetManager->assetFileExists($asset_path);

// Delete a dynamic asset and remove its record in the `asset` table
$assetManager->deleteDynamicAsset($asset_id);

// Upload a dynamic asset and create a record for it in the `asset` table
$assetManager->uploadDynamicAssetFile($source_path);

// Get a local copy of an asset (if necessary)
$assetPath = $assetManager->getAssetLocalPath($asset_path, AssetSource::TypeDynamic);

// Get the path of the local asset
$assetPath->getPath();
```

Installation
------------

[](#installation)

1. Add a dependency on o6web/asset-manager to your composer.json file if you use [Composer](https://getcomposer.org/) to manage the dependencies of your project:

```
composer require o6web/asset-manager
```

Although it's recommended to use Composer, you can actually include the file(s) any way you want.

2. Run the `deploy/install.sql` script to create the necessary database tables.

License
-------

[](#license)

AssetManager is [MIT](http://opensource.org/licenses/MIT) licensed.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance62

Regular maintenance activity

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~52 days

Recently: every ~70 days

Total

37

Last Release

235d ago

Major Versions

1.0.20 → 2.0.02021-09-27

2.4.3 → 3.0.02024-02-18

3.4.0 → 4.0.02025-12-22

PHP version history (3 changes)1.0.0PHP &gt;=7.1.0

2.0.0PHP &gt;=7.3.0

2.4.0PHP &gt;=7.4.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/0225f44837a665c8a143afa50a34a406a769c523dba31e4cdf73fd0530dede45?d=identicon)[cjrasmussen](/maintainers/cjrasmussen)

---

Top Contributors

[![cjrasmussen](https://avatars.githubusercontent.com/u/15007730?v=4)](https://github.com/cjrasmussen "cjrasmussen (46 commits)")

### Embed Badge

![Health badge](/badges/o6web-asset-manager/health.svg)

```
[![Health](https://phpackages.com/badges/o6web-asset-manager/health.svg)](https://phpackages.com/packages/o6web-asset-manager)
```

###  Alternatives

[altis/core

Core module for Altis

19233.0k4](/packages/altis-core)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45844.8k1](/packages/pressbooks-pressbooks)[ellaisys/aws-cognito

Laravel Authentication using AWS Cognito (Web and API)

121269.8k1](/packages/ellaisys-aws-cognito)[sproutcms/cms

Enterprise content management and framework

243.0k4](/packages/sproutcms-cms)

PHPackages © 2026

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