PHPackages                             qengine/qengine-skeleton - 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. [Framework](/categories/framework)
4. /
5. qengine/qengine-skeleton

ActiveLibrary[Framework](/categories/framework)

qengine/qengine-skeleton
========================

Skeleton Application for ZF2

v0.1.1(10y ago)0522BSD-3-ClausePHPPHP &gt;=5.5

Since Aug 10Pushed 10y ago1 watchersCompare

[ Source](https://github.com/jakubigla/zf-skeleton)[ Packagist](https://packagist.org/packages/qengine/qengine-skeleton)[ Docs](http://youridea.pl)[ RSS](/packages/qengine-qengine-skeleton/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (17)Versions (3)Used By (0)

My Perfect ZF2 Skeleton
=======================

[](#my-perfect-zf2-skeleton)

Introduction
------------

[](#introduction)

This is my own ZF2 skeleton application using the ZF2 MVC layer and module systems. Purpose of this is to provide a starting point of building simple, but also complex and enterprise applications. This skeleton comes with [Phing](https://www.phing.info) build script, that can be used in Continous Integration tools like Jenkins or Travis.

### QEngine modules

[](#qengine-modules)

Below are modules, that support building applications and point you to the PHP "best practices".

- [qengine/qengine-base](https://github.com/jakubigla/zf-base) - very early stage
- [qengine/qengine-locale](https://github.com/jakubigla/zf-locale)

Installation using Composer
---------------------------

[](#installation-using-composer)

The easiest way to create a new ZF2 project is to use [Composer](https://getcomposer.org/). If you don't have it already installed, then please install as per the [documentation](https://getcomposer.org/doc/00-intro.md).

Create your new ZF2 project:

```
composer create-project -n -sdev qengine/qengine-skeleton path/to/install

```

### Installation using a tarball with a local Composer

[](#installation-using-a-tarball-with-a-local-composer)

If you don't have composer installed globally then another way to create a new ZF2 project is to download the tarball and install it:

1. Download the [tarball](https://github.com/zendframework/ZendSkeletonApplication/tarball/master), extract it and then install the dependencies with a locally installed Composer:

    ```
     cd my/project/dir
     curl -#L https://github.com/zendframework/ZendSkeletonApplication/tarball/master | tar xz --strip-components=1

    ```
2. Download composer into your proejct directory and install the dependencies:

    ```
     curl -s https://getcomposer.org/installer | php
     php composer.phar install

    ```

If you don't have access to curl, then install Composer into your project as per the [documentation](https://getcomposer.org/doc/00-intro.md).

Build script
------------

[](#build-script)

Tu run build script, first you have to install [Phing](https://www.phing.info). Then in your project root directory run:

```
phing
```

What this script is doing:

- Install composer dependecies
- Check for PHP syntax errors in your source files
- Run unit tests
- Analise project for quality assurance (pdepend, phpmd, phpcpd, phpcs, phpdoc, phploc, phpcb)

Web server setup
----------------

[](#web-server-setup)

### Docker containers

[](#docker-containers)

This skeleton comes with basic [script](docker-compose.yml), that is used by [docker-compose](https://docs.docker.com/compose/), to create a local and powerful development infrastructure. By default there is only one container enabled - [Apache 2.4, PHP 5.6 (FastCGI)](https://hub.docker.com/u/jakubigla/apache-php-dev), however this script comes with two others: [MySQL](https://registry.hub.docker.com/_/mysql/) and [Jenkins](https://registry.hub.docker.com/u/jakubigla/jenkins-php/) containers.

I assume you are familiar with Docker and have already installed it (and boot2docker for OSX or Windows) together with Docker orchestration tool: docker-compose. Edit [script](docker-compose.yml) file to meet your requirments (don't forget about data volumes). Add valid entry to your `/etc/hosts` file (If you're on OSX or Windows, you can retrieve your VM IP by running: `shell boot2dock ip`) Now you are ready to run:

```
docker-compose up -d
```

If you're interested in my other Docker images visit .

### PHP CLI server

[](#php-cli-server)

The simplest way to get started if you are using PHP 5.4 or above is to start the internal PHP cli-server in the root directory:

```
php -S 0.0.0.0:8080 -t public/ public/index.php

```

This will start the cli-server on port 8080, and bind it to all network interfaces.

**Note:** The built-in CLI server is *for development only*.

### Apache setup

[](#apache-setup)

To setup apache, setup a virtual host to point to the public/ directory of the project and you should be ready to go! It should look something like below:

```

    ServerName zf2-app.localhost
    DocumentRoot /path/to/zf2-app/public

        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all

        Require all granted

```

### Nginx setup

[](#nginx-setup)

To setup nginx, open your `/path/to/nginx/nginx.conf` and add an [include directive](http://nginx.org/en/docs/ngx_core_module.html#include) below into `http` block if it does not already exist:

```
http {
    # ...
    include sites-enabled/*.conf;
}

```

Create a virtual host configuration file for your project under `/path/to/nginx/sites-enabled/zf2-app.localhost.conf`it should look something like below:

```
server {
    listen       80;
    server_name  zf2-app.localhost;
    root         /path/to/zf2-app/public;

    location / {
        index index.php;
        try_files $uri $uri/ @php;
    }

    location @php {
        # Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME /path/to/zf2-app/public/index.php;
        include fastcgi_params;
    }
}

```

Restart the nginx, now you should be ready to go!

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

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

Total

2

Last Release

3930d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9436458e2d471073777463b8fd76be8f0d307762b86e285a553a9e9f321c65b9?d=identicon)[qengine](/maintainers/qengine)

---

Top Contributors

[![jakubigla](https://avatars.githubusercontent.com/u/204480?v=4)](https://github.com/jakubigla "jakubigla (7 commits)")

---

Tags

frameworkzf2qengine

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/qengine-qengine-skeleton/health.svg)

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

PHPackages © 2026

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