Skip to content

namespace nightmare #165

@andrey-oparin

Description

@andrey-oparin

Стандартные функции PHP переопределяются в пространстве имен PHPDaemon\Thread

для обхода проблемы приходится использовать следущий хак:

runkit_function_rename('PHPDaemon\Thread\header', 'header');
runkit_function_rename('PHPDaemon\Thread\headers_sent', 'headers_sent');
runkit_function_rename('PHPDaemon\Thread\is_uploaded_file', 'is_uploaded_file');
runkit_function_rename('PHPDaemon\Thread\move_uploaded_file', 'move_uploaded_file');
runkit_function_rename('PHPDaemon\Thread\is_uploaded_file', 'is_uploaded_file');
runkit_function_rename('PHPDaemon\Thread\headers_list', 'headers_list');
runkit_function_rename('PHPDaemon\Thread\setcookie', 'setcookie');
runkit_function_rename('PHPDaemon\Thread\register_shutdown_function', 'register_shutdown_function');
runkit_function_rename('PHPDaemon\Thread\create_function', 'create_function');

..........................................................

namespace PHPDaemon\Thread;

/**
 * Overrides native PHP functions.
 * @return void
 */
protected function overrideNativeFuncs() {
    if (Daemon::supported(Daemon::SUPPORT_RUNKIT_INTERNAL_MODIFY)) {

        runkit_function_rename('header', 'header_native');

        function header() {
            if (!Daemon::$context instanceof \PHPDaemon\Request\Generic) {
                return false;
            }
            return call_user_func_array([Daemon::$context, 'header'], func_get_args());
        }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions