Closed clarkwinkelmann closed 3 years ago
Yes, I acknowledged the issue
Was reported here to: https://discuss.flarum.org/d/26269-flarum-discussion-views/247
This issue looks bigger than expected
Possible solutions include declaring a namespace
Isn't it already? Or you mean declare a namespace in extend.php
Oops, I never saw the report in the other discussion! I scanned the issues on both repositories but didn't see it.
Or you mean declare a namespace in extend.php
Yes that's what I was thinking of. There's no namespace declared at the top of extend.php
, so everything from both extend files is effectively a common namespace. For most extensions not having a namespace in extend.php
is not going to create any issue since there is usually nothing declared in that file.
I'm just not sure if const
variables can actually be constrained to a namespace or if they would still be declared globally when a namespace is declared.
Enabling both profile-views and discussion-views extensions at the same time leads to errors.
The issue is that both
extend.php
files (https://github.com/MichaelBelgium/flarum-profile-views/blob/master/extend.php and https://github.com/MichaelBelgium/flarum-discussion-views/blob/master/extend.php) register the same globalconst
variablesRELATIONSHIP
andRELATIONSHIP_LATEST
in the same namespace.I have not tried myself, but the problem was reported here https://discuss.flarum.org/d/7596-profile-views/50 and looking at the code it seems to be the logical explanation why a variable defined in profile-views ends up being used by discussion-views.
Relevant logs copied from the forum:
Both profile-views and discussion-views are installed at the latest version.
The error message is likely different depending on which of the two extensions is enabled first.
Possible solutions include declaring a namespace (I think the
const
variables would be scoped to the namespace instead of the global namespace) or using unique names for theconst
variables.