├── .gitignore ├── Gruntfile.js ├── README.md ├── example ├── app.js ├── package.json └── views │ └── index.php ├── index.js ├── lib └── PHPExpress │ ├── engine.js │ ├── index.js │ └── router.js ├── package.json └── page_runner.php /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.initConfig({ 3 | pkg: grunt.file.readJSON('package.json'), 4 | 5 | release: { 6 | options: { } 7 | } 8 | }); 9 | 10 | grunt.loadTasks('tasks'); 11 | grunt.registerTask('default', []); 12 | 13 | grunt.loadNpmTasks('grunt-release'); 14 | }; 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | php-express 2 | =========== 3 | Add PHP support to your express server. 4 | 5 | ## Getting Started 6 | 7 | ### Express 4.x 8 | 9 | ``` 10 | var express = require('express'); 11 | var app = express(); 12 | 13 | // must specify options hash even if no options provided! 14 | var phpExpress = require('php-express')({ 15 | 16 | // assumes php is in your PATH 17 | binPath: 'php' 18 | }); 19 | 20 | // set view engine to php-express 21 | app.set('views', './views'); 22 | app.engine('php', phpExpress.engine); 23 | app.set('view engine', 'php'); 24 | 25 | // routing all .php file to php-express 26 | app.all(/.+\.php$/, phpExpress.router); 27 | 28 | var server = app.listen(3000, function () { 29 | var host = server.address().address; 30 | var port = server.address().port; 31 | console.log('PHPExpress app listening at http://%s:%s', host, port); 32 | }); 33 | 34 | ``` 35 | 36 | ### Express 3.x 37 | 38 | ``` 39 | var express = require('express'), 40 | http = require('http'), 41 | path = require('path'), 42 | 43 | // require php-express and config 44 | phpExpress = require('../')({ 45 | binPath: '/usr/bin/php' // php bin path. 46 | }); 47 | 48 | 49 | // init express 50 | var app = express(); 51 | app.set('port', process.env.PORT || 3000); 52 | app.use(express.bodyParser()); // body parser is required!! 53 | 54 | 55 | // set view engine to php-express 56 | app.set('views', path.join(__dirname, 'views')); 57 | app.engine('php', phpExpress.engine); 58 | app.set('view engine', 'php'); 59 | app.use(app.router); 60 | app.use(express.static(path.join(__dirname, 'public'))); 61 | 62 | 63 | // routing all .php file to php-express 64 | app.all(/.+\.php$/, phpExpress.router); 65 | 66 | 67 | http.createServer(app).listen(app.get('port'), function(){ 68 | console.log('Express server listening on port ' + app.get('port')); 69 | }); 70 | ``` 71 | -------------------------------------------------------------------------------- /example/app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'), 2 | http = require('http'), 3 | path = require('path'), 4 | 5 | // require php-express and config 6 | phpExpress = require('../')({ 7 | binPath: '/usr/bin/php' // php bin path. 8 | }); 9 | 10 | 11 | // init express 12 | var app = express(); 13 | app.set('port', process.env.PORT || 3000); 14 | app.use(express.bodyParser()); // body parser is required!! 15 | 16 | 17 | // set view engine to php-express 18 | app.set('views', path.join(__dirname, 'views')); 19 | app.engine('php', phpExpress.engine); 20 | app.set('view engine', 'php'); 21 | app.use(app.router); 22 | app.use(express.static(path.join(__dirname, 'public'))); 23 | 24 | 25 | // routing all .php file to php-express 26 | app.all(/.+\.php$/, phpExpress.router); 27 | 28 | 29 | http.createServer(app).listen(app.get('port'), function(){ 30 | console.log('Express server listening on port ' + app.get('port')); 31 | }); 32 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "php-express-example", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node app.js" 7 | }, 8 | "dependencies": { 9 | "express": "3.1.1" 10 | } 11 | } -------------------------------------------------------------------------------- /example/views/index.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |