Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [LARAVEL] Zewnętrzna paczka
Forum PHP.pl > Forum > PHP
markonix
Zazwyczaj udaje się znaleźć paczkę dedykowaną do Laravela.
Tym razem próbuje sił z ogólną paczką:
https://github.com/t3ko/inpost-api-php-sdk

i niestety compser ładnie wszystko wrzuca do vendor ale Storm nie widzi tej paczki (nie podpowiada przy new czy use).
W pliku autoload_psr4 widzę:
  1. 'T3ko\\Inpost\\' => array($vendorDir . '/t3ko/inpost-api-php-sdk/src'),


Dwa pytanka:

1) Jest tam komenda:
composer config repositories.t3ko-inpost-api-php-sdk vcs https://github.com/t3ko/inpost-api-php-sdk.git
której nie wykonałem bo nie do końca jestem pewien czemu służy i czy jest potrzebna?
2) Jeżeli nie jest potrzebna i to nie przyczyna to jaka może być że nie widzi tej paczki?
DarkAbso
Mistrzem w temacie nie jestem, ale pewnie trzeba załadować bibliotekę do Laravel'a tongue.gif
Zrób fork na repozytorium, a następnie dorób provider do Laravel. (https://laravel.com/docs/5.4/providers)
Jeżeli gadam jakieś herezje to proszę o poprawę. W każdym razie pewnie szukał bym rozwiązania w tym kierunku.
r4xz
1. Skoro biblioteka jest na packagist.org to nie musisz używać tego polecania. Służy ono właśnie do dopisania do pliku composer.json nowego repozytorium (czyli miejsca w którym composer będzie szukał bibliotek).
2. Upewnij się, że ten katalog na pewno w folderze vendor istnieje i posiada wszystkie odpowiednie pliki. W PHPStormie polecam spróbować "File" -> "Invalidates Cache / Restart..." (usuwa zindeksowane pliki). Możesz także wejść w "File" -> "Settings" -> "Directories" i upewnić się, że nie masz przypadkiem folderu vendor na liście "Excluded Folders"
markonix
Instalowałem już niejedną bibliotekę i nie było problemów.
Spróbowałem jeszcze raz update i bez skutku, pliki oczywiście są:
http://prntscr.com/eb3i7v

Akurat jeżeli chodzi o Excluded to akurat każdorazowo jak wgrywam bibliotekę to Storm wyświetla popup, że została wgrana nowa biblioteka i lista excluded została zaktualizowana.
http://prntscr.com/eb3kaa
Wszystkie vendors są wyłączone z projektu ale mimo to działają (w aplikacji jak i w storm przy podpowiadaniu - przynajmniej większość).

Oki, nie wiem czy był błąd w storm czy nazbyt zaufałem Stormowi ale udało się.
Ostateczny kod działa:

  1. use T3ko;
  2.  
  3.  
  4.  
  5. $api = new T3ko\Inpost\Api\Client(
  6. 'test@testowy.pl',
  7. 'WqJevQy*X7',
  8. T3ko\Inpost\Api\Client::SANDBOX_API_ENDPOINT);
  9.  
  10. $machinesList = $api->getMachinesList();
  11.  


Może po prostu za bardzo się rozpędziłem w ułatwianiu życia przez storm i liczyłem że przy wpisywaniu new podpowie gdy zacznę wpisywać T3ko lub inpost, ale podpowie tylko przy nazwie klasy (Client).
Przy use podpowiada właściwy namespace.

Ale w każdym razie dzięki za wyjaśnienie punktu pierwszego, coś wyniosłem smile.gif

r4xz
Albo wpisywałeś namespace tak jak w przykładzie bez "\" na początku i wtedy PHPStorm szukał w aktualnym namespace:

  1. <?php
  2.  
  3. namespace Lorem\Lipsum\Dolor;
  4.  
  5. ...
  6.  
  7. $x = Lore // rozwija to jako Lorem\Lipsum\Lore


Jeśli podajesz pełną ścieżkę to polecam zawsze użyć "\" na początku, dzięki temu PHP (i przy okazji IDE) wie, że ma zacząć wyszukiwanie od korzenia (i jak zmieni się namespace danego pliku to nic Ci nie grozi):

  1. <?php
  2.  
  3. namespace Lorem\Lipsum\Dolor;
  4.  
  5. ...
  6.  
  7. $x = \Lore // tutaj już podpowie Lorem, potem Lipsum etc.
markonix
Przyznaje, że NS'ami operuje tak troszkę na czuja (bez Storma byłoby to mega trudne) i po prostu szukam opcji przy której najmniej znaków jest i kod działa smile.gif

Przy użyciu \ Storm wyświetla dymek "Unnecessary fully qualified name".
r4xz
Aaa, faktycznie, taki mały ten use w tym Twoim przykładzie, że go przeoczyłem (no i w sumie bardzo rzadko robię use który nie wskazuje bezpośrednio na daną klasę - to pewnie też swoje robi) biggrin.gif To w takim razie nie mam pomysłu czemu Ci nie podpowiada, jak działasz na Windowsie to spróbuj go przeinstalować (oczywiście pół żartem, ale coś w tym zawsze jest) tongue.gif
markonix
Ale mi wszystko działa wink.gif Podpowiada Namespace przy use i klasę przy new. Po prostu się zbytnio rozleniwiłem że liczyłem na zbyt dużo od IDE.
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-2025 Invision Power Services, Inc.