Opcache is generating different observer output
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.1k
- Merge medio
- 2 d 13 h
- PR fusionados (30 d)
- 96
Descripción
Description
The following code:
--TEST--
Observer: Basic observability of userland methods
--EXTENSIONS--
zend_test
--INI--
zend_test.observer.enabled=1
zend_test.observer.observe_all=1
--FILE--
<?php
class TestClass
{
private function bar()
{
echo 'Bar' . PHP_EOL;
var_dump(array_reduce([1, 2, 3], fn ($a, $b) => $a + $b));
}
public function foo()
{
echo 'Foo' . PHP_EOL;
$this->bar();
}
}
$test = new TestClass();
$test->foo();
$test->foo();
$test->foo();
echo 'DONE' . PHP_EOL;
?>
Resulted in this output:
<!-- init TestClass::{closure}() --> shown 3x
But I expected this output instead:
<!-- init TestClass::{closure}() --> shown only once (as when run without opcache)
CI: https://github.com/php/php-src/actions/runs/4332385117/jobs/7564838868#step:10:156
/cc @dstogov
PHP Version
master with opcache
Operating System
any
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando el caso de prueba del observer proporcionado con opcache habilitado y compara su salida con una ejecución sin opcache. Investiga por qué el mensaje de inicialización de la closure aparece tres veces en lugar de una; se considera terminado cuando la ejecución con opcache coincide con la salida esperada del observer.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- php
- Área
- compilers, testing-qa
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 38/100