Skip to content

ddprrt/connect-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

connect-php Build Status

PHP middleware for https://github.com/senchalabs/connect

Disclaimer

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 require('time-grunt')(grunt); // load all grunt tasks require('load-grunt-tasks')(grunt); //Add this to the beginning of your Gruntfile.js var phpMiddleware = require('connect-php'); grunt.initConfig({ ... connect: { options: { port: 9000, livereload: 35729, hostname: 'localhost', middleware: function(connect, options) { // The directory where connect is executed var directory = options.directory || options.base[options.base.length - 1]; // Return an array of all middlewares return [ phpMiddleware(directory) ] } }, ... } }); };

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.directory || options.base[options.base.length - 1]; if (!Array.isArray(options.base)) { options.base = [options.base]; } // Magic happens here middlewares.push(phpMiddleware(directory)); options.base.forEach(function(base) { // Serve static files. middlewares.push(connect.static(base)); }); // Make directory browse-able. middlewares.push(connect.directory(directory)); return middlewares; } ...

Contributing

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

Requirements

License

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

About

PHP middleware for https://github.com/senchalabs/connect

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •