Como renomear ou substituir a função do PHP?

Como posso redefinir uma função em PHP com o runkit?

$helloWorld = 'echo "Call require_once";';
runkit_function_redefine('require_once', '$word', $helloWorld);
require_once("abc.php");

Eu coloquei no php.ini

runkit.internal_override=1

quando eu corro, mostra:

Warning: runkit_function_redefine() [function.runkit-function-redefine]: require_once() not found in hhd_debug.php on line 2

Warning: require_once(abc.php) [function.require-once]: failed to open stream: No such file or directory in hhd_debug.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'abc.php' (include_path='.;xampp\php\PEAR') in hhd_debug.php on line 3

como eu posso consertar isso? por favor me ajude!

2
adicionado
Visualizações: 1
Use um profiler como xdebug em vez de estragar com a própria linguagem, o que distorcerá seus resultados de qualquer maneira.
adicionado o autor deceze, fonte
Você pode ir para override_function ( php.net/manual/en/function.override- function.php ) em vez disso, se isso serve ao seu propósito.
adicionado o autor sushil, fonte
Eu sou código joomla ideal para rede social e economia eletrônica. Então, eu preciso comparar resultado após ótimo (tempo e tamanho). no joomla incluem muito mais arquivos, então eu preciso avaliar cada arquivo antes e depois incluído
adicionado o autor Mr Jerry, fonte
deceze e Clancy Hood estão corretos, require_once não é function, é statement, então não posso sobrescrevê-lo. Eu tentei xdebug antes, mas não é útil para agora. Eu estou indo escrever um cronômetro de classe para executar o cálculo de tempo, obter todos os arquivos incluídos e removê-lo se não precisar de rede social e economia eletrônica. Alguma outra ideia para isso?
adicionado o autor Mr Jerry, fonte
Isso ocorre porque sua string de caminho ( include_path = '.; xampp \ PHP \ PEAR' ) é errônea
adicionado o autor hjpotter92, fonte
require_once é provavelmente uma construção de linguagem (como "unset" e "list") em vez de uma função, e é provavelmente impossível sobrescrevê-la. Por que você quer substituí-lo? O que você está tentando fazer? Veja php.net/manual/pt-BR/language.oop5.autoload.php para maneiras interessantes de incluir arquivos
adicionado o autor Clancy Hood, fonte
Arrumado. Então você quer otimizar o Joomla e garantir que ele esteja apenas carregando scripts que ele usa? Não é uma pessoa do Joomla, mas acho que isso pode ter consequências incômodas - considere deixar o Joomla sozinho e usar um cache de opcode pt. wikipedia.org/wiki/List_of_PHP_accelerators
adicionado o autor Clancy Hood, fonte

1 Respostas

Eu acho que isso não funciona porque require_once é uma construção de linguagem, não uma função.
Não sei se há outra possibilidade de ignorar isso, acho que não.

6
adicionado