Bug #72095 [Opn]: Undefined constant GLOB_BRACE while doc-base/configure.php
| From: | cmb@php.net | Date: | Mon, 25 Apr 2016 14:04:35 +0000 |
| Subject: | Bug #72095 [Opn]: Undefined constant GLOB_BRACE while doc-base/configure.php | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-13432@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=72095&edit=1
ID: 72095
Updated by: cmb@php.net
Reported by: rogeriopradoj@php.net
Summary: Undefined constant GLOB_BRACE while
doc-base/configure.php
Status: Open
Type: Bug
Package: Doc Build problem
Operating System: Alpine Linux
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
Setting GLOB_BRACE to 0 obviously deactivates the advanced
features of glob()[1]. Either GLOB_BRACE is necessary, or not. In
the latter case we simply can remove the flag; in the former we'd
break the code.
[1] <https://3v4l.org/BrtiP>
Previous Comments:
------------------------------------------------------------------------
[2016-04-24 16:07:23] bjori@php.net
I don't like the inline ternary use, just define the constant upfront in stead and then it
looks good to me.
------------------------------------------------------------------------
[2016-04-24 13:44:25] rogeriopradoj@php.net
Description:
------------
When running doc-base/configure.php (as pointed in http://doc.php.net/tutorial/editing.php) for any
language (en or translations), in Alpine Linux, 3 error messages are thrown, 1 notice and 2
warnings:
---
$ php doc-base/configure.php --enable-xml-details
Iterating over extension specific version files... PHP Notice: Use of undefined constant GLOB_BRACE
- assumed 'GLOB_BRACE' in /php-manual/doc-base/configure.php on line 573
PHP Warning: glob() expects parameter 2 to be long, string given in
/php-manual/doc-base/configure.php on line 573
PHP Warning: Invalid argument supplied for foreach() in /php-manual/doc-base/configure.php on line
573
---
The message "All good. Saving .manual.xml⦠done." is shown in the end, anyway we
could make these errors disappear.
Researching a little I found that this happens in Alpine Linux because seems that it doesn't
support GLOB_BRACE since it is using musl libc instead of GNU libc.
> https://github.com/zendframework/zend-stdlib/issues/58
The workaround is not hard to implement (https://github.com/zendframework/zend-stdlib/pull/59):
Instead of using directly
... GLOB_BRACE ...
it's just to check if it's defined before otherwise defaults to 0, like this:
... defined('GLOB_BRACE') ? GLOB_BRACE : 0 ...
As shown above, it's the way the issue was solved in Zend Framework.
---
As Alpine Linux is going to get more attention mainly because of Docker based environments because
it's very lightweight (https://www.brianchristner.io/docker-is-moving-to-alpine-linux/), I
guess this workaround proposed is worth to have here as well.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=72095&edit=1