Coder Social home page Coder Social logo

node-php-bin's Introduction

node-php-bin

Linux Windows
master

NPM

Usage

var nodePhpBin = require('node-php-bin').get();

// PHPスクリプトを実行する
nodePhpBin.script(
  ['/path/to/php_script.php'],
  function(data, error, code){
    console.log(data, error, code);
  }
);

// PHPスクリプトを実行
//   ( require('child_process').spawn() にオプションを渡す場合)
nodePhpBin.script(
  ['/path/to/php_script.php'],
  {} , // options for require('child_process').spawn()
  function(data, error, code){
    console.log(data, error, code);
  }
);

// PHPスクリプトを実行
//   (詳細な途中経過を知りたい場合)
nodePhpBin.script(
  ['/path/to/php_script.php'],
  {} , // options for require('child_process').spawn()
  {
    "success": function(data){
      console.log(data);
    } ,
    "error": function(data){
      console.log(data);
    } ,
    "complete": function(data, error, code){
      console.log(data, error, code);
    }
  }
);

// PHP のパスを取得する
var pathPhp = nodePhpBin.getPath();

// php.ini のパスを取得する
var pathPhpIni = nodePhpBin.getIniPath();

// Extension Directory のパスを取得する
var pathPhpExtDir = nodePhpBin.getExtensionDir();

// PHPのバージョンを取得する
nodePhpBin.getPhpVersion(
  function(versionStr){
    console.log(versionStr);
  }
);

Options

var nodePhpBin = require('node-php-bin').get({
    'bin': '/path/to/php',
    'ini': '/path/to/php.ini'
});

for developer

PHP for Darwin build command

$ curl -Lso php-5.6.8.tar.gz http://jp2.php.net/get/php-5.6.8.tar.gz/from/this/mirror
$ tar xfz php-5.6.8.tar.gz
$ cd php-5.6.8
$ ./configure \
--enable-mbstring=all \
--enable-mbregex \
--enable-zip \
--with-openssl \
--without-iconv \
--prefix=/dev/null \
--exec-prefix=/dev/null \
--sysconfdir=/dev/null \
--with-config-file-path=/dev/null
$ make

make install は実行しないでください。 ビルドされた php は、 ./sapi/cli/php に出力されます。

Mac OS X El Capitan でビルドが失敗する場合

事前に下記をインストールしてからもう一度実行すると、解決する場合があります。

$ brew install openssl
$ brew install libxml2
$ brew link openssl --force
$ brew link libxml2 --force

Change Log

node-php-bin v0.2.6 (2018-09-07)

  • script()getPhpVersion() が、子プロセスを返すように変更。

node-php-bin v0.2.5 (2018-03-20)

  • darwin/php 5.6.8 : ElCapitan でリビルド

node-php-bin v0.2.4 (2016-03-24)

  • add compile option: --enable-zip

node-php-bin's People

Contributors

tomk79 avatar

Stargazers

 avatar Giacomo Tüfekci avatar

Watchers

 avatar James Cloos avatar

Forkers

misak1 paladox

node-php-bin's Issues

v0.2.5 - ERROR: Error: 'PluginPhp' crash (validation/indexDOF.php): removed

With 0.2.5 I have an error on macOS Sierra 10.12.6

ERROR: Error: 'PluginPhp' crash (validation/indexDOF.php): removed | 1s
Error: spawnSync /Users/yves/my-project/node_modules/node-php-bin/bin/darwin/5.6.8/php EPIPE
    at _errnoException (util.js:1022:11)
    at Object.spawnSync (child_process.js:579:20)
    at Function.module.exports.sync (/Users/yves/my-project/node_modules/execa/index.js:337:30)
    at /Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/plugins/PluginPhp.js:45:33
    at Generator.next (<anonymous>)
    at step (/Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/plugins/PluginPhp.js:26:191)
    at /Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/plugins/PluginPhp.js:26:437
    at new Promise (<anonymous>)
    at /Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/plugins/PluginPhp.js:26:99
    at PluginPhp.processCore (/Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/plugins/PluginPhp.js:51:7)
    at /Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/processFile.js:30:17
    at Generator.throw (<anonymous>)
    at step (/Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/processFile.js:13:191)
    at /Users/yves/my-project/node_modules/@orga/builder/lib/Builder/FileProcessor/processFile.js:13:402
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
``


PS: I would be nice to have a changelog because I don't know exactly what happened in `0.2.5 `

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.