@uniter/phpcore

5.2.2 • Public • Published

PHPCore

Build Status

Minimal PHP core library for PHP environments.

Who would use this?

After getting started with Uniter and PHPRuntime, you might want only a subset of the standard PHP library. You can include PHPCore and then only expose the builtin functions, classes or constants you need.

var phpCore = require('phpcore');

phpCore.install({
    functionGroups: [
        function (internals) {
            return {
                'add_one_to': function (argReference) {
                    return internals.valueFactory.createInteger(argReference.getNative() + 1);
                }
            };
        }
    ],
    classes: {
        'TwentyOne': function () {
            function TwentyOne() {}

            TwentyOne.prototype.getIt = function () {
                return 21;
            };

            return TwentyOne;
        },
        'My\\Tools\\Worker': function () {
            function Worker() {}

            Worker.prototype.run = function () {
                console.log('running');
            };

            return Worker;
        }
    },
    constantGroups: [
        function (internals) {
            return {
                'MY_CONSTANT': 1000
            };
        }
    ]
});

phpCore.compile(
    // Example JS code transpiled from PHP by PHPToJS:
    function (stdin, stdout, stderr, tools, namespace) {
        var namespaceScope = tools.createNamespaceScope(namespace), namespaceResult, scope = tools.globalScope, currentClass = null;
        return tools.valueFactory.createInteger(
            namespaceScope.getConstant('MY_CONSTANT').getNative() +
            namespaceScope.getFunction('add_one_to')(tools.valueFactory.createInteger(21)).getNative()
        );
    }
)().execute().then(function (result) {
    console.log(result.unwrapForJS()); // Prints "1022"
});

Keeping up to date

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 5.2.2
    0
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 5.2.2
    0

Package Sidebar

Install

npm i @uniter/phpcore

Weekly Downloads

0

Version

5.2.2

License

MIT

Unpacked Size

1.12 MB

Total Files

215

Last publish

Collaborators

  • asmblah
  • mikedevelops