PHPackages                             devmcc/package-dev - 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. devmcc/package-dev

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

devmcc/package-dev
==================

A simple tool for developing Composer packages.

2.0.1(5y ago)028MITPHPPHP ^7.1 || ^8.0CI failing

Since Oct 21Pushed 5y agoCompare

[ Source](https://github.com/DevMcC/package-dev)[ Packagist](https://packagist.org/packages/devmcc/package-dev)[ RSS](/packages/devmcc-package-dev/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (3)Dependencies (6)Versions (4)Used By (0)

PackageDev
==========

[](#packagedev)

A simple tool for developing Composer packages.

PackageDev makes use of symlinks to make it seem as if the package you are developing is run in vendor. Thanks to this, you can make changes to your package and immediately check the results.

Installation
============

[](#installation)

It is recommended to install PackageDev globally:

```
composer global require devmcc/package-dev

```

After you have installed PackageDev, go to the root directory of the project that needs to use your package and run:

```
package-dev init

```

Next, open up your project's `composer.json` file and add the following:

```
"scripts": {
    "pre-install-cmd": [
        "package-dev symlink-remove"
    ],
    "pre-update-cmd": [
        "package-dev symlink-remove"
    ],
    "post-install-cmd": [
        "package-dev symlink-create"
    ],
    "post-update-cmd": [
        "package-dev symlink-create"
    ]
}
```

Linking packages
----------------

[](#linking-packages)

After running `init`, a new directory called `packages` was created, you need to add your packages to this directory.

If your package is called `devmcc/testing`, you need to add your package in the following folder structure:

```
./packages/devmcc/testing

```

Link your package with the following command:

```
package-dev link devmcc/testing

```

Unlink your package with the following command:

```
package-dev unlink devmcc/testing

```

Using a phar archive
--------------------

[](#using-a-phar-archive)

PackageDev can be run through a phar archive. This can be very usefull for when you are using things like Docker containers.

You can create an archive with:

```
package-dev phar

```

Next, make the following changes to your project's `composer.json` file:

```
"pre-install-cmd": [
-    "package-dev symlink-remove"
+    "@php package-dev.phar symlink-remove"
],
"pre-update-cmd": [
-    "package-dev symlink-remove"
+    "@php package-dev.phar symlink-remove"
],
"post-install-cmd": [
-    "package-dev symlink-create"
+    "@php package-dev.phar symlink-create"
],
"post-update-cmd": [
-    "package-dev symlink-create"
+    "@php package-dev.phar symlink-create"
]
```

**NOTE**: In order to be able to create phar archives, you need to add the following to your `php.ini` file:

```
phar.readonly = 0

```

Upgrading from version 1
========================

[](#upgrading-from-version-1)

For anyone who was using version 1, here is how you can upgrade to version 2: Unlink all your packages, do the upgrade and link them again

Testing
=======

[](#testing)

After you have cloned the repo and installed all dependencies you can do the following:

- Run unit tests with - `vendor/bin/phpunit`
- Run code analysis with - `vendor/bin/phpstan analyse src tests --level max`
- Run code coverage analysis with - `vendor/bin/phpunit --coverage-html tmp/code-coverage`
    - Then open tmp/code-coverage/index.html in your browser
- Run phpcs with - `vendor/bin/phpcs --standard=PSR12 src tests`

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity69

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

Total

3

Last Release

1946d ago

Major Versions

1.0.2 → 2.0.02020-02-25

PHP version history (2 changes)2.0.0PHP ^7.1

2.0.1PHP ^7.1 || ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/26748646?v=4)[DevMcC](/maintainers/DevMcC)[@DevMcC](https://github.com/DevMcC)

---

Top Contributors

[![DevMcC](https://avatars.githubusercontent.com/u/26748646?v=4)](https://github.com/DevMcC "DevMcC (28 commits)")

---

Tags

composerpackagesvendorpackage-developmentpackage-devpackagedev

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/devmcc-package-dev/health.svg)

```
[![Health](https://phpackages.com/badges/devmcc-package-dev/health.svg)](https://phpackages.com/packages/devmcc-package-dev)
```

###  Alternatives

[jean85/pretty-package-versions

A library to get pretty versions strings of installed dependencies

1.3k315.9M79](/packages/jean85-pretty-package-versions)[ergebnis/composer-normalize

Provides a composer plugin for normalizing composer.json.

1.1k40.0M2.7k](/packages/ergebnis-composer-normalize)[composer/metadata-minifier

Small utility library that handles metadata minification and expansion.

181123.3M23](/packages/composer-metadata-minifier)[mediamonks/composer-vendor-cleaner

Removes as much as possible from your vendor dir when space or number of files is important

2759.4k](/packages/mediamonks-composer-vendor-cleaner)[visavi/cleanup

Cleaning vendor directory

2356.1k4](/packages/visavi-cleanup)[flarum/extension-manager

An extension manager to install, update and remove extension packages from the interface (Wrapper around composer).

11223.6k](/packages/flarum-extension-manager)

PHPackages © 2026

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