Skip to content

🐘 Allows you to use PHP as a view engine for Express applications.

License

Notifications You must be signed in to change notification settings

jalfd/express-php-view-engine

 
 

Repository files navigation

express-php-view-engine

Build Status codecov npm

This module allows you to use PHP as a templating system for Express framework applications. This module was built and is maintained by the Roosevelt web framework team, but it can be used independently of Roosevelt as well.

Usage

First declare php as a dependency in your app.

Then set PHP as a view engine in your Express app:

const express = require('express')
const app = express()
const php = require('php')

// setup php templating engine
app.set('views', path.join(__dirname, 'templates'))
app.set('view engine', 'php')
app.engine('php', php.__express)

// define a route
app.get('/', (req, res) => {
  res.render('index.php', {
    hello: 'world'
  })
})

Then, assuming your templates/index.php looks like this:

<p><?=$hello?></p>

The ouptut will be:

<p>world</p>

Note: This module presumes that the system you run this on has PHP installed and that it's in your PATH.

Configuration

As shown in the above example, this module will register values from the Express model as global variables in your PHP script by default. You can disable this behavior if desired two ways:

Disable registering globally:

const php = require('php')
php.disableRegisterGlobalModel()
// can be reenabled by calling php.enableRegisterGlobalModel()

Disable registering on a per route basis:

app.get('/', (req, res) => {
  res.render('index.php', {
    _REGISTER_GLOBAL_MODEL: false,
    hello: 'world'
  })
})

About

🐘 Allows you to use PHP as a view engine for Express applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 88.4%
  • PHP 11.6%