Skip to content

uniter/phpcore

Repository files navigation

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 (core) {
        var add = core.add, callFunction = core.callFunction, createInteger = core.createInteger, getConstant = core.getConstant;
        return add(getConstant('MY_CONSTANT'), callFunction('add_one_to', [createInteger(21)]));
    }
)().execute().then(function (result) {
    console.log(result.getNative()); // Prints "1022"
});

Keeping up to date

About

Minimal PHP core library for PHP environments

Resources

Stars

Watchers

Forks

Packages

No packages published