Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PhpStorm undefined namespace
Forum PHP.pl > Inne > Komputery i oprogramowanie
nospor
Hejka,
uzywam PHPStorm i gdy np. moja klasa implementuje jakis interfejs to daje:

  1. class SomeClass implements Tools\Grid\GridInterface


To wg. PHPStorm Grid nie istnieje a konkretnie zaznacza mi slowo Grid na czerowo i pisze "undefined namespace".
Ale gdy dokladnie to samo wrzuce do use to dla PHPStorm w use juz jest ok

  1. use Tools\Grid\GridInterface;

To juz jest ok. Czyli z jakiegos powodu PHPStorm w implements uzywa innego algorytmu?

To samo jest gdy klasa jest w komentarzu, np w return:

  1. @return Tools\Grid\GridInterface

Tutaj rowniez Grid bedzie na czerwono

Ktos kojarzy o co chodzi i gdzie cos moge zmienic? Nie chce ciagle jednego uzycia klasy wrzucac do Use.

ps: oczywiscie gdy odpale aplikacje to niezaleznie czy jest w use czy od razu w implements to wszystko dziala bez zarzutu







Pyton_000
Spróbuj ustawić Namespace dla katalogu:

https://confluence.jetbrains.com/display/Ph...ort+in+PhpStorm
nospor
bylem juz na tej stronie zanim napisalem. Nic nie pomaga.

To musi byc jakis dziwny problem, skoro dla USE jest wszystko ok, a dla wszystkiego innego nie.
viking
Tylko że use Tools\Grid\GridInterface; wskazuje na prawidłowy zapewne namespace a Tools\Grid\GridInterface na coś w stylu Some\Tools\Grid\GridInterface w zależności od namespace użyty w klasie.
nospor
Dzieki viking, zmienilem na \Tools\Grid\BaseGrid i teraz ten blad zniknal smile.gif
Pojawil sie za to inny "Unnecessary fully qualified name", ktory sugeruje ze dobrze by bylo uzyc USE... zamkniete kolo wink.gif
by_ikar
A odpaliłeś taki przykładowy kod żeby sprawdzić czy działa? Z tego co pamiętam jeżeli chce się użyć czegoś z innej przestrzeni, trzeba to poprzedzić \ żeby odwołać się do global scope.
nospor
Odpalalem i dzialalo zarowno bez \ jak i z \. Tylko z Z Phpstorm nie krzyczal bledu, bez \ Phpstorm krzyczal bledem
viking
Hmm. Trochę niemożliwe. implements odwołuje się relatywnie do namespace więc php powinno wywalić fatal. Fatal error: Interface 'XXX\Abc' not found
nospor
No to pewnie dlatego ze w composer.json mam ustawiona sciezke autoload dla Tools wink.gif
viking
Ale to nic nie zmienia po stronie parsera. Dalej będzie szukał relatywnie.
nospor
Nie wiem jak szuka, wiem natomiast ze niezalaznie czy dam \ czy nie, to parser znajduje to co ma znalezc smile.gif
com
Tego \ w PHPStormie dodawało się od pamiętnych czasów wiec do dziś nic się nie zmieniło ich parser po prostu tak działa, ze jak nie ma na \ to szuka w lokalnym scope, inaczej jest w przypadku use, bo tam wie, że początek to pierwszy poziom biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.