phing icon indicating copy to clipboard operation
phing copied to clipboard

FilesystemIterator bug in PHP 8.2

Open jawira opened this issue 2 years ago • 1 comments

Before PHP 8.2, the flag FilesystemIterator::SKIP_DOTS was always set, according to FilesystemIterator documentation:

Screenshot from 2022-09-14 21-03-22

FilesystemIterator has changed its behavior in PHP 8.2.

Here an example (also in https://3v4l.org/HrmZ2):

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $file) {
    echo $file->getFilename() . PHP_EOL;
}

This is the output in PHP 8.1:

$ /usr/bin/php8.1 deleteme.php
deleteme.php

However in PHP 8.2 this behavior has changed:

$ /usr/bin/php8.2 deleteme.php
.
..
deleteme.php

Example

<?xml version="1.0" encoding="UTF-8" ?>
<project name="demo" default="php:lint">

    <target name="php:lint" description="Check syntax on PHP files">
        <phplint haltonfailure="true">
            <fileset dir="tests">
                <include name="**/*.php"/>
            </fileset>
        </phplint>
    </target>

</project>

Output:

$ phing php:lint Buildfile: /home/jawira/xxxxxxxxxxx/build.xml

Case Converter > php:lint:

BUILD FAILED /home/jawira/xxxxxxxxxxx/build.xml:44:34 FilesystemIterator::__construct(/home/jawira/xxxxxxxxxxxxxx/tests/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src/../src): Failed to open directory: File name too long

Total time: 0.4991 seconds

jawira avatar Sep 14 '22 20:09 jawira

Codecov Report

Merging #1685 (332a7ca) into main (0025c28) will increase coverage by 0.00%. The diff coverage is 100.00%.

@@            Coverage Diff            @@
##               main    #1685   +/-   ##
=========================================
  Coverage     58.34%   58.34%           
  Complexity     6961     6961           
=========================================
  Files           355      355           
  Lines         16611    16612    +1     
=========================================
+ Hits           9692     9693    +1     
  Misses         6919     6919           
Impacted Files Coverage Δ
src/Phing/Io/FileSystem.php 47.16% <100.00%> (+0.18%) :arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov[bot] avatar Sep 14 '22 20:09 codecov[bot]