Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Merge pull request #3 from fordlee404/develop

Can't parse get type request
latest commit 9f13e40a33
@ddprrt authored
Failed to load latest commit information.
lib fixed #1
.editorconfig initial
.gitignore initial
.jshintrc initial
.travis.yml Removing Node 0.8
Gruntfile.js removes nodeunit tests (for now)
LICENSE Initial commit typo
package.json removes nodeunit tests (for now)

connect-php Build Status

PHP middleware for


This plugin is a very early stage, and was primarily designed to provide a better PHP integration with grunt-contrib-connect. So for now, it was only tested with Grunt on a rather basic test set.

Its main goal is to parse and execute .php files whenever a request to such a file is made.

Getting Started

Install the module with: npm install connect-php

Using it with Grunt

grunt-contrib-connect at the moment is very tight in it's execution and has no way to easily add another middleware to its execution stack as it was possible with grunt-connect. However, it is still possible to override the usually used middleware function. So, to just execute .php files we can easily set it up like this:

module.exports = function (grunt) {
    // show elapsed time at the end

    // load all grunt tasks

    //Add this to the beginning of your Gruntfile.js
    var phpMiddleware = require('connect-php');

        connect: {
            options: {
                port: 9000,
                livereload: 35729,
                hostname: 'localhost',
                middleware: function(connect, options) {
                    // The directory where connect is executed
                    var directory = 
                      || options.base[options.base.length - 1];
                    // Return an array of all middlewares
                    return [

To sneak in our middleware into grunt-contrib-connect's original middleware stack, we have to recreate a good chunk of their implementation. Add this to the middleware part described above:

middleware: function(connect, options) {
    var middlewares = [];
    var directory = || options.base[options.base.length - 1];
    if (!Array.isArray(options.base)) {
        options.base = [options.base];

    // Magic happens here

    options.base.forEach(function(base) {
        // Serve static files.

    // Make directory browse-able.
    return middlewares;


In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 0.0.1 - very early, initial release



Copyright (c) 2013 Stefan Baumgartner. Licensed under the MIT license.

Something went wrong with that request. Please try again.