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(6mo ago)024PHPPHP &gt;=7.4.0

Since Oct 15Pushed 6mo 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 today

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

40

—

FairBetter than 86% of packages

Maintenance68

Regular maintenance activity

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity66

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

189d 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

[akeneo/pim-community-dev

Akeneo PIM, the future of catalog management is open!

1.0k624.1k85](/packages/akeneo-pim-community-dev)[altis/core

Core module for Altis

19228.0k3](/packages/altis-core)[ellaisys/aws-cognito

Laravel Authentication using AWS Cognito (Web and API)

123256.9k1](/packages/ellaisys-aws-cognito)[napp/xray-laravel

AWS X-Ray for Laravel applications.

62436.7k](/packages/napp-xray-laravel)[foxxmd/laravel-elasticbeanstalk-cron

Ensure only one Laravel instance is running CRON jobs in an EB environment

62311.8k](/packages/foxxmd-laravel-elasticbeanstalk-cron)[northwestern-sysdev/dynamic-forms

Dynamic Forms for Laravel

4759.7k2](/packages/northwestern-sysdev-dynamic-forms)

PHPackages © 2026

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