PHPackages                             textpattern/installer - 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. textpattern/installer

ActiveComposer-plugin

textpattern/installer
=====================

Textpattern plugin and theme installer

1.0.14(4y ago)61.0k2[1 issues](https://github.com/gocom/textpattern-installer/issues)20GPL-2.0PHPPHP &gt;=5.5.38

Since Apr 28Pushed 3y ago3 watchersCompare

[ Source](https://github.com/gocom/textpattern-installer)[ Packagist](https://packagist.org/packages/textpattern/installer)[ Docs](https://github.com/gocom/textpattern-installer)[ RSS](/packages/textpattern-installer/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (5)Dependencies (4)Versions (23)Used By (20)

Textpattern Installer for Composer
==================================

[](#textpattern-installer-for-composer)

[Package directory](https://packagist.org/search/?q=textpattern) | [Issues](https://github.com/gocom/textpattern-installer/issues)

Install plugins and themes to [Textpattern CMS](https://textpattern.com)with [Composer](https://getcomposer.org/) dependency manager.

```
$ composer require rah/rah_replace
```

Why Composer?
-------------

[](#why-composer)

Normally installing Textpattern plugins requires that you manually download an installation package, upload the package through your admin-panel, and then go through a multi-step installer process; rinse and repeat for every plugin, and when you need to update one.

With [Composer](https://getcomposer.org/), it's all managed through the dependency manager. Any theme or a plugin can be installed, updated or uninstalled, using a single command. This also comes with all the other Composer's benefits such as being able to commit your package manifesto under version control system and all of your project teammates will have the same set of plugins synced without any extra fiddling.

Quick start for end-users
-------------------------

[](#quick-start-for-end-users)

After [installing Composer](https://getcomposer.org/doc/00-intro.md) to your host system that Textpattern is installed on, you can start adding plugins to Textpattern with Composer from command line.

First, head over to your Textpattern installation location, and tell Composer your Textpattern installation version by installing [textpattern/lock](https://github.com/gocom/textpattern-lock) meta-package:

```
$ cd /path/to/your/textpattern/installation/root
$ composer require textpattern/lock:4.6.2
```

After that, you can add any plugins and themes to your Textpattern installation like any other Composer packages:

```
$ composer require rah/rah_replace rah/rah_flat
```

Always run Composer commands in Textpattern installation directory, or in a directory right above it; the Composer installer supports installing Textpattern to a sub-directory, which would allow Textpattern to be within public HTTP server root directory, while Composer packages can be in a directory above it.

Quick start for developers
--------------------------

[](#quick-start-for-developers)

Plugins and themes are just like any other normal Composer package, but with a special [type](https://getcomposer.org/doc/04-schema.md#type) and a matching installer requirement in your [composer.json](https://getcomposer.org/doc/04-schema.md). The package should be named after the plugin or the theme too. An example `composer.json` stub would look like the following:

```
{
  "name": "vendor/pfx_pluginname",
  "type": "textpattern-plugin",
  "require": {
      "textpattern/installer" : "*"
  }
}
```

### Package types

[](#package-types)

TypeDescription`textpattern-plugin`The package contains manifest.json formatted plugin sources. See [an example plugin](https://github.com/gocom/abc_plugin)`textpattern-plugin-package`The package contains collection of compiled plugin installer files. Any file that's name matches the format `pfx_pluginname_v0.1.0.txt` will be installed.`textpattern-admin-theme`The package is [an admin-side theme](https://docs.textpattern.com/themes/admin-side-themes). See [an example admin-theme](https://github.com/gocom/abc_theme).`textpattern-public-theme`The package is [a front-end theme](https://docs.textpattern.com/themes/front-end-themes)Internals
---------

[](#internals)

The installer works by scanning `composer.json` file's sibling and child directories for a Textpattern installation. If found, it injects the whole Textpattern application to the currently running Composer process. It then collects any plugins and themes from Composer packages and installs them, invoking plugin-lifecycle updaters and installers as needed. This process can be compatible with, and used by, any plugin or a theme.

The installer doesn't require any extra configuration from the end-user or the developer. All it needs is a functional Textpattern installation, located either in the same directory as the `composer.json` file or in a child directory. Just note that the system the Composer command is ran at, needs to have access to the database; take this in mind if you are, for instance, running the composer command outside a virtualized container.

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

[](#requirements)

- [Composer](https://getcomposer.org/) 1.x, 2.x
- [Textpattern CMS](https://textpattern.com/) 4.4.1, 4.5.7, 4.6.x, 4.7.x, 4.8.x
- [PHP](https://secure.php.net/) &gt;= 5.5.38
- [PDO](https://secure.php.net/manual/en/book.pdo.php)

Development
-----------

[](#development)

See [CONTRIBUTING.md](CONTRIBUTING.md)

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity68

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

Recently: every ~280 days

Total

22

Last Release

1485d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3a34b4e1b662cd2c926e8e89a76f93df266b199fe61508d38026cb952f28e59e?d=identicon)[rah](/maintainers/rah)

---

Top Contributors

[![gocom](https://avatars.githubusercontent.com/u/665186?v=4)](https://github.com/gocom "gocom (35 commits)")

---

Tags

composercomposer-installercomposer-pluginphptextpatterntextpattern-developmenttextpattern-pluginplugininstallerthemetextpatterntxp

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/textpattern-installer/health.svg)

```
[![Health](https://phpackages.com/badges/textpattern-installer/health.svg)](https://phpackages.com/packages/textpattern-installer)
```

###  Alternatives

[dealerdirect/phpcodesniffer-composer-installer

PHP\_CodeSniffer Standards Composer Installer Plugin

596161.9M1.9k](/packages/dealerdirect-phpcodesniffer-composer-installer)[balbuf/composer-wp

Manage WordPress core, plugins, and themes with composer.

173.6k](/packages/balbuf-composer-wp)

PHPackages © 2026

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