is_readable() not working on files inside phar
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
Using the following code to create a basic phar file:
$stub = <<<STUB
<?php
Phar::interceptFileFuncs();
set_include_path('phar://' . __FILE__ . PATH_SEPARATOR . get_include_path());
include "index.php";
__HALT_COMPILER();
STUB;
$index = <<<INDEX
<?php
var_dump(file_exists('phar:///path/to/archive.phar/index.php')) . PHP_EOL;
var_dump(is_readable('phar:///path/to/archive.phar/index.php')) . PHP_EOL;
var_dump(file_exists('index.php')) . PHP_EOL;
var_dump(is_readable('index.php')) . PHP_EOL;
INDEX;
$phar = new Phar('archive.phar');
$phar->addFromString('index.php', $index);
$phar->setStub($stub);
Then executing the following code:
php archive.phar
Resulted in this output:
bool(true)
bool(false)
bool(true)
bool(false)
But I expected this output instead:
bool(true)
bool(true)
bool(true)
bool(true)
Or executing the following code:
<?php
var_dump(is_readable('phar:///path/to/archive.phar/index.php'));
Resulted in this output:
bool(false)
But I expected this output instead:
bool(true)
PHP Version
PHP 8.0.12
Operating System
Ubuntu 20.04
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
Reproduce el comportamiento usando el archive.phar, index.php y el stub de Phar proporcionados en PHP 8.0.12. Empieza rastreando Phar::interceptFileFuncs() y la ruta de is_readable(), y después añade o actualiza una prueba de regresión que muestre que los archivos dentro del Phar informan del estado de lectura esperado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- php
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100