PHPackages                             crustum/plugin-manifest - 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. crustum/plugin-manifest

ActiveCakephp-plugin[Utility &amp; Helpers](/categories/utility)

crustum/plugin-manifest
=======================

Plugin Manifest System - Install plugin assets, configs, migrations, and bootstrap code to CakePHP applications

1.0.2(4mo ago)15075MITPHPPHP &gt;=8.1CI passing

Since Nov 28Pushed 4mo agoCompare

[ Source](https://github.com/Crustum/PluginManifest)[ Packagist](https://packagist.org/packages/crustum/plugin-manifest)[ RSS](/packages/crustum-plugin-manifest/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (5)Used By (5)

CakePHP PluginManifest Plugin
=============================

[](#cakephp-pluginmanifest-plugin)

The **PluginManifest** plugin provides a standardized way for CakePHP plugins to install and publish assets (config files, migrations, templates, environment variables, and bootstrap code) to the main application.

This plugin enables plugin developers to distribute optional configuration files, migrations, and other assets that users can selectively install when needed.

The plugin uses interface-based registration where plugins implement `ManifestInterface`, making asset distribution simple and developer-friendly with interactive selection, dry-run mode, and smart duplicate prevention.

Features
--------

[](#features)

Plugins implement the `ManifestInterface` with a static `manifest()` method to define their publishable assets. The system supports multiple operation types including copying files, appending to bootstrap, merging configurations, installing migrations, and adding environment variables.

Migration handling is smart, automatically adding plugin namespaces to prevent class conflicts while preserving timestamps for correct ordering. Configuration merging preserves all user comments and file structure, ensuring customizations are never lost.

The interactive mode prompts users to select what to install, or you can install by plugin, tag, or all assets at once. Dry run mode lets you preview changes before applying them. The system uses marker and content-based duplicate detection and tracks installed assets with operation-specific rules. All generated code uses modern short array syntax.

Requirements
------------

[](#requirements)

- PHP 8.1+
- CakePHP 5.1+

Documentation
-------------

[](#documentation)

For complete documentation, usage examples, and tutorials, see the [docs](docs/index.md) directory of this repository.

Quick Example
-------------

[](#quick-example)

Each trait method returns an array of assets, so use `array_merge()` to combine them:

```
use Crustum\PluginManifest\Manifest\ManifestInterface;
use Crustum\PluginManifest\Manifest\ManifestTrait;

class YourPlugin extends BasePlugin implements ManifestInterface
{
    use ManifestTrait;

    public static function manifest(): array
    {
        $pluginPath = dirname(__DIR__) . DS;

        return array_merge(
            static::manifestConfig(
                $pluginPath . 'config' . DS . 'app.php',
                CONFIG . 'your_plugin.php',
                false
            ),
            static::manifestMigrations(
                $pluginPath . 'config' . DS . 'Migrations',
                CONFIG . 'Migrations'
            ),
            static::manifestBootstrapAppend(
                "Plugin::load('YourPlugin');",
                '// YourPlugin bootstrap'
            ),
            static::manifestEnvVars(
                [
                    'YOUR_PLUGIN_KEY' => 'default_value',
                ],
                '# YourPlugin Configuration'
            ),
            static::manifestConfigMerge(
                'YourPlugin',
                [
                    'enabled' => true,
                    'timeout' => 30,
                ]
            )
        );
    }
}
```

Then install with:

```
bin/cake manifest install --plugin YourPlugin
```

License
-------

[](#license)

Licensed under the [MIT](http://www.opensource.org/licenses/mit-license.php) License. Redistributions of the source code included in this repository must retain the copyright notice found in each file.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance75

Regular maintenance activity

Popularity14

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 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 ~10 days

Total

4

Last Release

137d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f1f53020a99b0b08cda73130f837f37cae2ae8420ff0cc4ceb650a733c4a1bd6?d=identicon)[skiedr](/maintainers/skiedr)

---

Top Contributors

[![skie](https://avatars.githubusercontent.com/u/130799?v=4)](https://github.com/skie "skie (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/crustum-plugin-manifest/health.svg)

```
[![Health](https://phpackages.com/badges/crustum-plugin-manifest/health.svg)](https://phpackages.com/packages/crustum-plugin-manifest)
```

###  Alternatives

[dereuromark/cakephp-tools

A CakePHP plugin containing lots of useful and reusable tools

338920.1k32](/packages/dereuromark-cakephp-tools)[markstory/asset_compress

An asset compression plugin for CakePHP. Provides file concatenation and a flexible filter system for preprocessing and minification.

3761.0M11](/packages/markstory-asset-compress)[dereuromark/cakephp-shim

A CakePHP plugin to shim applications between major framework versions.

401.0M11](/packages/dereuromark-cakephp-shim)[cakedc/cakephp-phpstan

CakePHP plugin extension for PHPStan.

40676.6k31](/packages/cakedc-cakephp-phpstan)[dereuromark/cakephp-dto

A CakePHP plugin for generating immutable Data Transfer Objects with full type safety

2988.9k3](/packages/dereuromark-cakephp-dto)[dereuromark/cakephp-geo

A CakePHP plugin around geocoding tools and helpers.

51174.9k4](/packages/dereuromark-cakephp-geo)

PHPackages © 2026

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