https://github.com/pqml/php-server-middleware
Simple php connect-like middleware using the php built-in web server
https://github.com/pqml/php-server-middleware
Last synced: 2 months ago
JSON representation
Simple php connect-like middleware using the php built-in web server
- Host: GitHub
- URL: https://github.com/pqml/php-server-middleware
- Owner: pqml
- License: mit
- Created: 2017-02-23T13:25:51.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-03T17:56:57.000Z (over 7 years ago)
- Last Synced: 2024-04-20T13:33:29.015Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 30.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# php-middleware
Simple php connect-like middleware using the php built-in server
:warning: __This is experimental and only tested on OSX__ :warning:
### Examples
##### Usage with express
```js
const express = require('express')
const phpMiddleware = require('php-server-middleware')const app = express()
app.use('/', phpMiddleware())
app.listen(3000)```
### API Usage
#### `const middleware = phpMiddleware([options])`
Return a connect-like middleware function and auto-start the php server used by the middleware.#### Options
##### `host` (String)
* Default: `'127.0.0.1'`
* The host the php server will listen on
* There is an issue between `node-proxy` and the built-in php server when php serves from `localhost`. To fix this, `localhost' will be proxy as `[::1]`. Note that it can break host/port rewriting in headers/body response.##### `port` (Number)
* Default: `'35410'`
* The base port to use for the php server##### `root` (String)
* Default: `process.cwd()`
* The document root of the php server##### `headersRewrite` (Boolean)
* Default: `true`
* Rewrites the location host/port on (301/302/307/308) redirects based on requested host/port.##### `bodyRewrite` (Boolean)
* Default: `true`
* Replace all `proxyHost:proxyPort` by `requestedHost:requestedPort` from the response body
* Works only for these MIME-types:
- text/html
- text/css
- text/xml
- text/javascript
- application/javascript
- application/json##### `headers` (Object)
* Default: `{}`
* Adds request headers##### `handle404` (Boolean)
* Default: `true`
* Let php handle not-found filepaths##### `proxyOpts` (Object)
* Default: `{}`
* [http-proxy-middleware](https://www.npmjs.com/package/http-proxy-middleware) options##### `phpOpts` (Object)
* Default: `{}`
* [@pqml/node-php-server](https://github.com/pqml/node-php-server) options##### `verbose` (Boolean)
* Default: `false`
* Log additional informations##### `quiet` (Boolean)
* Default: `false`
* If true, don't write anything to the console##### `onStart` (Function)
* Default: `function () {}`
* The onStart function will be called when the php built-in server is ready.##### `bin` (String)
* Default: `php`
* Absolute Path / Alias to the php binary##### `promptBinary` (Boolean)
* Default: `false`
* If set to true and php isn't found, the middleware will ask the user a path/alias to a php binary
* Be careful to not have other log during the middleware setup when using this. You can use the `onStart` options to wait for the middleware to be ready before logging anything else