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

Since Oct 15Pushed 4mo 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 1mo 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

41

—

FairBetter than 89% of packages

Maintenance74

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

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

[aws/aws-sdk-php-symfony

A Symfony bundle for v3 of the AWS SDK for PHP

36517.7M22](/packages/aws-aws-sdk-php-symfony)[csharpru/vault-php

Best Vault client for PHP that you can find

8410.3M4](/packages/csharpru-vault-php)[napp/xray-laravel

AWS X-Ray for Laravel applications.

61407.3k](/packages/napp-xray-laravel)[helgesverre/extractor

AI-Powered Data Extraction for your Laravel application.

22128.0k](/packages/helgesverre-extractor)[dreamonkey/laravel-cloudfront-url-signer

Laravel 5.6+ wrapper around CloudFront canned signed URLs

54750.7k](/packages/dreamonkey-laravel-cloudfront-url-signer)[foxxmd/laravel-elasticbeanstalk-cron

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

62299.6k](/packages/foxxmd-laravel-elasticbeanstalk-cron)

PHPackages © 2026

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