phpdox
phpdox copied to clipboard
DirectoryCleaner has problem with rmdir
Somehow phpdox is not able to execute anymore since changing to PHP 7.4.x
PHP Version: 7.4.3 (Linux)
PHPDox Version: 0.12.0
ErrorException: E_WARNING
Location: phar:///usr/local/src/phive/phars/phpdox-0.12.0.phar/phpdox/shared/DirectoryCleaner.php (Line 32)
rmdir(/var/lib/jenkins/workspace/project/build/api/.): Invalid argument
No stacktrace available
This configuration was working previously:
<build engine="html" enabled="true" output="./">
<template dir="${phpDox.home}/templates/html"/>
<file extension="xhtml"/>
</build>
but now is producing the warning described above.
Removing the dot and changing the path to "/" is doing the trick:
<build engine="html" enabled="true" output="/">
Though I think the above config should work and the output path "/" (root) feels uncomfortable.
Apart from the fact that crashing is obviously the wrong way to deal with a problem - and an interesting bug with regards to a different PHP version I do not yet understand -, I'm not sure I understand the configuration value itself.
Why would you use ./ as the output path instead of an actually named directory, potentially relative to the configuration file? And what's the expected difference to .?
And, lastly, why would / work? Unless you run as rootyou shouldn't even have write permissions to/`, let alone want to have it cleaned...?
I am not certain how this config has been created, but as far as I experienced, the output path is relative to the generator path. So a "/" is not root, even though it feels like it is, but rather the generator path itself, which was the goal in the first place, I assume.