Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Laravel PHPStorm podpowiadanie metod
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


Jeśli nie ten dział przepraszam.
Piszę w PHPStorm ..... nie podpowiada mi metod kiedy rozszerzam jakąś klasę nadrzędną. Czy to jest normalne w PHP i ich IDE?
Jak sobie radzicie z tym fantem?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Mi dziala. przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


U mnie działa...

Pokaż case w którym Ci nie działa.
Go to the top of the page
+Quote Post
john_doe
post
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


  1.  
  2. interface ICrudRepository {
  3.  
  4. /**
  5.   * Returns ................
  6.   * @param int $id
  7.   * @param string[] $options
  8.   * @return Model|null
  9.   */
  10. public function get(int $id, array $options);
  11. }
  12.  
  13. // Implementacja
  14. abstract class CrudRepository implements ICrudRepository
  15. {
  16. // wiadomo
  17. }
  18.  
  19. // i teraz
  20.  
  21. interface IStoreRepository extends ICrudRepository {
  22. /**
  23.   * @return Store|null
  24.   */
  25. public function get(int $id, array $options) {}
  26.  
  27. // jak zakomentuję ten dualizm to PHPStorm nie podpowiada dobrze obiektów
  28.  
  29. class StoreRepository extends CrudRepository implements IStoreRepository
  30. {
  31. }


i teraz gdy wstrzykuję gdzieś ten interfejs to bez jakby overridu tych metod .... IDE nie podpowiada tzn.

  1. $this->storeRepository->get() // tutaj metody podpowiada ale z błędnymi modelami. enter i zły using


Przegiąłem z PHPDocsami ale czy idzie osiągnąć taki cel, że gdy skasuje te komentarze podpowie metodę i JESZCZE doda poprawny using smile.gif

Ten post edytował john_doe 19.12.2017, 15:23:46
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Przegiąłem z PHPDocsami
Docs to naprawde najmniejszy problem w tym co tu nam pokazales...
Tak czy siak skopiowalem sobie twoj kod i jakos wszystko dziala i ladnie podpowiada.

Moze to
$this->storeRepository
masz gdzies zle okreslone?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
john_doe
post
Post #6





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


Cytat
Docs to naprawde najmniejszy problem w tym co tu nam pokazales...

co masz na myśli?

  1. $this->storeRepositor

jest ok i zostało wstrzyknięte w konstruktor

Ten post edytował john_doe 19.12.2017, 15:41:03
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co mam na mysli? No jak zobaczylem te sieczke to pol dnia sie zastanawialem co autor mial na mysli wink.gif

Cytat
jest ok i zostało wstrzyknięte w konstruktor

Pokaz mi ten konstruktor oraz deklaracje tej klasy z kawalkiem gdzie jest storeRepository zadeklarowane w klasie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
john_doe
post
Post #8





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


Jeżeli to jest dla Ciebie sieczka to pozostaje mi nie dyskutować smile.gif

  1. class LocationServiceImpl implements LocationService
  2. {
  3.  
  4. protected $storeRepository;
  5.  
  6. public function __construct(IStoreRepository $storeRepository)
  7. {
  8. $this->storeRepository = $storeRepository;
  9. }
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




/** @var IStoreRepository */
protected $storeRepository;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


No i jeszcze raz co Ci tu nie działa. Przekazujesz do konstruktora Interface więc wg. niego powinno podpowiadać. A to że przekażesz jakis obiekt to tutaj IDE nie będzie wiedziało co to za obiekt jest bo masz interface.

Wg. mnie `get()` powinno "zwracać" obiekt Store wg. tego co pokazałeś.
Go to the top of the page
+Quote Post
john_doe
post
Post #11





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


to nic nie daje
wtedy podpowiada metodę get ale bez modelu zupełnie tak samo jak usuwam override
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co to znaczy, ze podpowiada bez modelu?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
john_doe
post
Post #13





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


tzn. że zobacz

$this->repository->metoda rozwija się lista metoda z jakimi parametrami oraz \WebApp\entiity\model\store

i tego nie ma smile.gif

i use \WebApp\entity\model\store muszę klepnąć ręcznie

a to zapewnia mi to

  1. /**
  2.   * @return Store|null
  3.   */
  4. public function get(int $id, array $options) {}


Ten post edytował john_doe 19.12.2017, 16:07:38
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Podpowiada metody z IStoreRepository. Czego oczekujesz wiecej?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
john_doe
post
Post #15





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


abym nie musial recznie dodawać

  1. use jakis\tam\model


w VisualStudio to normalka
w Javie i też IDE z JetBrainsa

Dziękuje Ci za dyskusje
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro deklarujesz, ze obiekt jest typu IStoreRepository to bedziesz mial takie podpowiadanie. Logiczne. Chcesz miec inne podpowiadania, to zadeklaruj, ze jest innego typu.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:08