PHPackages                             alexstandiford/underpin - 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. alexstandiford/underpin

Abandoned → [underpin/underpin](/?search=underpin%2Funderpin)Package

alexstandiford/underpin
=======================

Underpin framework

4.2.1(3y ago)931216[13 issues](https://github.com/Underpin-WP/underpin/issues)[1 PRs](https://github.com/Underpin-WP/underpin/pulls)MITPHPPHP ^8.1

Since Sep 30Pushed 3y ago5 watchersCompare

[ Source](https://github.com/Underpin-WP/underpin)[ Packagist](https://packagist.org/packages/alexstandiford/underpin)[ RSS](/packages/alexstandiford-underpin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (35)Used By (0)

Underpin
========

[](#underpin)

The goal of Underpin is to provide a pattern that makes building PHP projects easier. It provides support for useful utilities that plugins need as they mature, such as a solid error logging utility, a batch processor for upgrade routines, and a decision tree class that makes extending *and* debugging multi-layered decisions way easier than traditional WordPress hooks.

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

[](#installation)

Underpin can be installed in any place you can write code.

### Via Composer

[](#via-composer)

`composer require underpin/underpin`

**Note** This will add Underpin as a `mu-plugin`, but due to how WordPress handles must-use plugins, this does *not actually add the plugin to your site*. You must also manually require the file in a mu-plugin PHP file:

```
