Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

PHP-Setting:docref_root breaks getCompiledRoutes #33833

Copy link
Copy link
Closed
@pesc

Description

@pesc
Issue body actions

Symfony version(s) affected: 4.3, 4.4

Description
When the PHP docref_root is set, comparsion (===) doesn't match anymore:

if (1 < $chunkLimit && $this->signalingException === $e) {

The docref_root set's an URL to a manual and prints it out for exceptions, like this -> in my example to https://secure.php.net/manual/en/:

preg_match() [<a href='https://secure.php.net/manual/en/function.preg-match.php'>function.preg-match.php</a>]: Compilation failed: regular expression is too large at offset 61332

Main problem is that the strpos doesn't return any results:

set_error_handler(function ($type, $message) { throw 0 === strpos($message, $this->signalingException->getMessage()) ? $this->signalingException : new \ErrorException($message); });

<?php
$mystring = "preg_match() [<a href='https://secure.php.net/manual/en/function.preg-match.php'>function.preg-match.php</a>]: Compilation failed: regular expression is too large at offset 61332";
$findme   = 'preg_match(): Compilation failed: regular expression is too large';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}
?>

The string 'preg_match(): Compilation failed: regular expression is too large' was not found in the string 'preg_match() [<a href='https://secure.php.net/manual/en/function.preg-match.php'>function.preg-match.php</a>]: Compilation failed: regular expression is too large at offset 61332'

How to reproduce
set docref_root to https://secure.php.net/manual/en/ in your php.ini/user.ini....

Possible Solution
unset docref_root to https://secure.php.net/manual/en/ in your php.ini/user.ini....

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.