PHPackages                             3ev/phingy - 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. [DevOps &amp; Deployment](/categories/devops)
4. /
5. 3ev/phingy

AbandonedArchivedLibrary[DevOps &amp; Deployment](/categories/devops)

3ev/phingy
==========

A useful collection of build scripts for managing PHP sites

v4.0.0(9y ago)29.0k↓50%1PHP

Since Aug 13Pushed 5y ago8 watchersCompare

[ Source](https://github.com/3ev/phingy)[ Packagist](https://packagist.org/packages/3ev/phingy)[ Docs](http://github.com/3ev/phingy)[ RSS](/packages/3ev-phingy/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (48)Used By (0)

\#Phingy

Phingy is a small collection of build scripts which you can mix together differently depending on your project. To use these scripts, you include the required ones in your build script starting with your own project.xml.

\###Installation &amp; dependencies

Phingy is installed via [Composer](http://getcomposer.org/). Add the following to your project's `composer.json` and run `composer install`:

```
{
    "require": {
        "3ev/phingy": "~4.0"
    },
    "scripts": {
        "post-install-cmd": [
            "Tev\\Phingy\\ComposerScripts::postInstall"
        ]
    },
    "config": {
        "bin-dir": "bin"
    }
}
```

You'll then be able to run Phing using

```
$ bin/phing

```

\###'Skel' files

Phingy will automatically generate files from `.skel` files anywhere in your project. These files can include Phing properties which will be replaced with their actual values at compile time.

You may for example want to create an Apache vhost config file for your project, which you'll be able to commit to source control without having to including any environment specific config. Like so:

```
# In config/httpd.conf.skel

    ServerName ${build.url}
    DocumentRoot ${build.public_dir}

```

\###Database tasks &amp; S3

If you'd like to make use of the database tasks that push/pull database dumps from Amazon S3, you will need to install the [Pear Amazon S3 package](http://pear.php.net/package/Services_Amazon_S3/):

```
$ pear install Services_Amazon_S3
```

This will allow you to backup and download your full database to/from S3 using:

```
$ bin/phing db:commit
$ bin/phing db:update

```

There are numerous other database tasks that make it easy to configure a MySQL database for your project.

\###Setting up a webserver

Phingy includes a `build:server` task which will by default configure and install Apache configuration for your project.

Config will be symlinked from `config/httpd.conf` to `/etc/apache2/sites-enabled`, so you can commit a file to version control (or use a `.skel` extension) and simply run

```
$ sudo bin/phing build:server

```

to start your project running on Apache.

\###Platform specific tasks

Phingy includes a few 'platform' specifc task sets, as followss:

- [typo3](https://github.com/3ev/phingy/blob/master/scripts/platform/typo3.xml)Typo3 specific tasks (includes [db](https://github.com/3ev/phingy/blob/master/scripts/core/database.xml)). Will set up TYPO3 on build, and provides some utility methods.
- [sphinx](https://github.com/3ev/phingy/blob/master/scripts/platform/sphinx.xml)Sphinx specific tasks. Provides tasks to index Sphinx data for the project.
- [laravel](https://github.com/3ev/phingy/blob/master/scripts/platform/laravel.xml)Laravel specific tasks. Provides tasks to work with the Laravel framework

\###Setting up your project with Platforms

When you run `composer install`, you will be prompted to pick a template to use for your project. Selecting a template will create a file called `project.xml` in your project's `config/` directory.

The `project.xml` file includes a number of hooks you can add to for project-specific tasks. Currently, These are:

```
project:config                Configure extra properties to use in your build
project:build:before          Run some tasks before `build`
project:build:after           Run some tasks after `build`
project:build:housekeeping    Cleanup any uneeded files or data

```

Each platform includes each of these hooks as well, of the form `[platform]:build:before` etc. If you'd like to make use of a platform, simply include it with:

```

```

and then call each of its hooks in your project-specific hooks:

```

```

**Note:** If you pick a non-default template (like 'typo3'), all of this will be handled for you.

\###Adding your own project specific tasks and config

You can add any of your own tasks in `config/project.xml`. These should be namespaced with `project:` for convention. You can either add standalone tasks, or call them in any of the available hooks.

\###Overriding existing tasks

If you need to, you can override built in tasks by creating a new task with the same name in your `project.xml`. You shouldn't have to do this though, as the built in hooks provide enough flexibility for you to customise tasks.

\###Adding extra config

You add should any project specific config to `config/project.properties` if possible. If you need to prompt the user for it during build, you can do so in the `project:config` hook.

\###About ./build.xml

`build.xml` sits in the root of your project, and is symlinked from `vendor/`. You should add this file to your `.gitignore`.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 94.7% 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 ~60 days

Recently: every ~442 days

Total

46

Last Release

1943d ago

Major Versions

v0.13.0 → v1.0.02015-11-27

v1.0.1 → v2.0.02016-03-18

v2.0.0 → v3.0.02016-03-18

v3.0.0 → v4.0.02016-05-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/380e5682a659dee3eb84812db8fcb0433bcf70c460b2eeafd97d79b9f1646f03?d=identicon)[3ev](/maintainers/3ev)

---

Top Contributors

[![BenConstable](https://avatars.githubusercontent.com/u/817029?v=4)](https://github.com/BenConstable "BenConstable (143 commits)")[![dimitris3ev](https://avatars.githubusercontent.com/u/60876146?v=4)](https://github.com/dimitris3ev "dimitris3ev (8 commits)")

### Embed Badge

![Health badge](/badges/3ev-phingy/health.svg)

```
[![Health](https://phpackages.com/badges/3ev-phingy/health.svg)](https://phpackages.com/packages/3ev-phingy)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.1k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4674.7k](/packages/tiamo-phpas2)

PHPackages © 2026

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