Retezec ABC v namespace vyhodi chybu s Replace literal $val with constant(‚$val‘)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jakub Nerad
Člen | 21
+
0
-

V sablone pouzivam nektere konstanty, ktere jsou v namespace \MyLibrary\ABC\Foo::BAR.

Tento zapis vyhodi trigger s Replace literal ABC with constant(‚ABC‘).

Mam pripraveny pull request, ktery vypada takto

!$tokens->isPrev('\\') && !$tokens->isNext('\\')

v PhpWiter.php:189

if ($tokens->isCurrent('?>')) {
	// ...
} elseif ($tokens->isCurrent($tokens::T_SYMBOL)
	&& !$tokens->isPrev('::') && !$tokens->isNext('::') && !$tokens->isPrev('->')
    && !$tokens->isPrev('\\') && !$tokens->isNext('\\') \\ \Namespace\ABC\Foo
	&& preg_match('#^[A-Z0-9]{3,}$#', $val = $tokens->currentValue())
) {
	trigger_error("Replace literal $val with constant('$val')", E_USER_DEPRECATED);

}

Chtel bych se tady poptat, zda je to opravdu chyba nebo je to zamerne chovani, ze v namespacu nelze pouzit VELKA pismena?

David Grudl
Nette Core | 8218
+
0
-

Je to chyba.

VasekHenzl
Člen | 1
+
0
-

Narazil jsem na stejný problém. @JakubNerad, jak to vypadá s tvým PR?

sepo
Člen | 69
+
0
-

Ako to vyzerá s opravou ?