22
GitHub - cscott/js2php: JavaScript (ES6) to PHP source-to-source transpiler.
source link: https://github.com/cscott/js2php
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
js2php
JavaScript to PHP source-to-source transpiler. Online demo
This is an experiment. Please do not use it.
Installation
- Install nodejs
- Install js2php globally:
npm install -g js2php
Usage
Convert a single JavaScript file into PHP:
js2php examples/simple.js > simple.php
Since js2php
outputs the PHP code to stdout, you may run it right after
conversion:
js2php examples/class.js | php
Features
What does it converts?
- Classes (ES6)
- Getters and Setters (ES6)
- Namespaces (ES6)
- Loops (while / for / do-while / for-of / for-in)
- Arrow functions (ES6)
- Template strings (ES6)
- Functions and closures
- Conditionals
- Core JavaScript
- Array
- Array.prototype.unshift
- Array.prototype.shift
- Array.prototype.reverse
- Array.prototype.push
- Array.prototype.pop
- Array.prototype.join
- Array.prototype.splice
- Array.prototype.indexOf
- Array.prototype.length
- JSON
- JSON.parse
- JSON.stringify
- Math
- Math.E
- Math.LN2
- Math.LN10
- Math.LOG2E
- Math.LOG10E
- Math.PI
- Math.SQRT2
- Math.SQRT1_2
- Math.abs
- Math.acos
- Math.acosh
- Math.asin
- Math.asinh
- Math.atan
- Math.atanh
- Math.atan2
- Math.cbrt
- Math.ceil
- Math.clz32
- Math.cos
- Math.cosh
- Math.exp
- Math.expm1
- Math.floor
- Math.hypot
- Math.log
- Math.log1p
- Math.log10
- Math.max
- Math.min
- Math.pow
- Math.random
- Math.round
- Math.sin
- Math.sinh
- Math.sqrt
- Math.tan
- Math.tanh
- Number
- Number.isInteger
- Number.isFinite
- String
- String.prototype.replace
- String.prototype.trim
- String.prototype.trimRight
- String.prototype.trimLeft
- String.prototype.toUpperCase
- String.prototype.toLowerCase
- String.prototype.split
- String.prototype.substr
- String.prototype.match
- Function
- Function.prototype.apply
- Function.prototype.call
- Date
- Date.now
- Array
Testing
Tests are simple input (js) / output (php) comparisions.
- Create your source
.js
file attest/fixtures/js_feature.js
- Convert your
.js
to.php
manually:node test/generate.js js_feature.js
- Run
npm test
License
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK