Skip to content

Unsupported semicolon prefix in LinkGenerator::link calls #255

Open
@dakujem

Description

@dakujem

Version: 3.0.4

Links with destination in deprecated/invalid format
:Module:Presenter:action (note the semicolon : at the beginning of the destination string)
work with UI\Presenter/UI\Component but not with LinkGenerator.

I'm not sure which one is the desired behaviour, or whether this is a bug of UI\Component or LinkGenerator class, but in the following scenario, only the first call works:

$presenter->link(':Foo:Bar:'); // works ✔
$linkGnrtr->link(':Foo:Bar:'); // fails ❌

The second call fails with Presenter name must be alphanumeric string, ':Foo:Bar' is invalid..

Links in the correct format work with both classes, of course ✔:

$presenter->link('Foo:Bar:'); // works ✔
$linkGnrtr->link('Foo:Bar:'); // works ✔

I understand that the format is not correct according to current documentation, but I would like to point out that the behaviour should be consistent, that is,
it should either work in both cases or not work in either one.

EDIT:
I forgot to add that calling

$presenter->getAction(true);

will result in (depending on whether the presenter is in a module or not)

':Foo:Bar:default' // inside a module
':Bar:default'     // outside a module

... which is in direct contradiction to the format, as in the methods' comments:

@param  string   $dest in format "[[[module:]presenter:]action] [#fragment]"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions