Negotiable Paleobotanist Missions

    @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

    Keywords

    Install

    npm i @uniter/phpcore

    DownloadsWeekly Downloads

    1

    Version

    5.2.2

    License

    MIT

    Unpacked Size

    1.12 MB

    Total Files

    215

    Last publish

    Collaborators

    • asmblah
    • mikedevelops