Class not found, Problem z dostępem do klas |
Class not found, Problem z dostępem do klas |
18.09.2018, 10:53:47
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
Mój skrypt nie widzi klas i rzuca następującym błędem:
mój skrypt stomp.php:
Struktura katalogów jest taka: Stomp/stomp.php Stomp/src/Client.php Klasa Client.php:
PS. Używam serwera www VertrigoServ z wersją PHP 5.6 bo taka jest potrzebna mi do przetestowania protokołu STOMP. Dlaczego nie widzi mi tej klasy ? |
|
|
18.09.2018, 11:00:47
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
$stomp = new \Stomp\Client("tcp://localhost:8080");
|
|
|
18.09.2018, 11:30:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
przeniosłem skrypt do katalogu "src" i teraz mam tak w skrypcie stomp.php :
i komunikat :
dziwne bo linia 10 to to:
ale rozumiem że idzie do pliku Client.php i tam ma problem z tym:
więc zmieniam na:
i dostaję właściwie to samo bo:
Ten post edytował damianooo 18.09.2018, 11:31:41 |
|
|
18.09.2018, 11:56:43
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
A po co cokolwiek przenosiłeś? Miało zostać tak jak miałeś i tylko zmienić tą 1 rzecz.
Nie używasz autoloadera więc każdą klasę która jest używana musi być dołączona |
|
|
18.09.2018, 12:05:59
Post
#5
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
też tak robiłem ale i tak był kolejny błąd taki jak pisałem w ostatnim poście.
Wyciąłem teraz kod z klasami z katalogu "src" i zapisałem na serwerze www w katalogu "Stomp" i tam też jest mój skrypt. Mam teraz tak jak poniżej i wydaje się że w końcu po Bożemu
Generalnie wziąłem kody stąd:
Nadal mam jednak ten sam błąd:
PS. A żeby mieć autoloadera to co powinienem zrobić ? Bo piszesz że każda klasa musi być dołączona to oznacza że każdą muszę przejrzeć i zmieniać , masakra i bez sensu przecież. |
|
|
18.09.2018, 12:29:35
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Zainstaluj composer https://getcomposer.org
dołącz plik `vendor/autoload.php` do swojego pliku i zainstaluj tą libkę tak jak jest opisane na GitHub |
|
|
18.09.2018, 19:50:50
Post
#7
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
Jednak nie wchodzi w grę autoloader i composer ze względów polityki firmy ale nie ważne ..
Próbuję to zrobić bez tego i tak: Mam taką strukturę katalogów:
Mój skrypt jest taki:
Klasa Client.php tak ma ustawione namespace i ścieżki do innych klas:
i mam taki błąd:
Dlaczego wciąż dostaję informację że nie ma takiej klasy w tym katalogu ? Jak to powinienem mieć ? Proszę o podpowiedź to pozostałe sobie już pozmieniam. Dzięki Ten post edytował damianooo 18.09.2018, 19:55:12 |
|
|
18.09.2018, 20:18:03
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
18.09.2018, 20:38:01
Post
#9
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
hmm , a więc da się to też tak zrobić ok ...
ale użyłem Twojego kodu i mam takie dwa błędy więc coś jeszcze nie tak:
i
doczytałem trochę o autładowaniu klas: https://pl.wikibooks.org/wiki/PHP/Automatyc..._%C5%82adowanie i widzę że można kod skrócić nawet do tego:
tylko że co ciekawe ciągle mam te dwa powyższe błędy ... masakra Ten post edytował damianooo 18.09.2018, 20:57:15 |
|
|
19.09.2018, 12:30:04
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
No masz błędy wyraźne teraz musisz sobie poprawić to. Debuguj, sprawdzaj
|
|
|
19.09.2018, 22:02:47
Post
#11
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
ok udało mi się composerem zainstalować tą bibliotekę.
composer install wykonałem z katalogu na który wskazuje PATH systemowy a więc z c:\ProgramData\ComposerSetup\bin\ Teraz mam tam katalog vendor a w nim katalog composer , katalog z biblioteką stomp-php oraz plik autoload.php Skopiowałem więc cały katalog vendor do mojego projektu na serwerze www a więc do c:\VertrigoServ\www\dc\ , umieściłem w nim mój skrypt stomp.php , który teraz ma jedną linię kodu:
i dostaję błąd:
strukturę katalogów mam teraz taką :
co mam źle ? Ten post edytował damianooo 19.09.2018, 22:03:48 |
|
|
20.09.2018, 07:47:29
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
20.09.2018, 08:29:21
Post
#13
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
ok tak zrobiłem i mam teraz tak jak pisałeś a więc:
i nadal mam ten sam błąd:
plik autoload.php wygląda tak:
Ten post edytował damianooo 20.09.2018, 08:30:24 |
|
|
20.09.2018, 08:35:27
Post
#14
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) |
Pokaz jeszcze w calosci ten swoj plik stomp.php
|
|
|
20.09.2018, 08:43:47
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Tłumaczę ostatni raz... Więcej nie będę. 1. Utwórz katalog 2. zainstalu composera 3. W poprzednio wykonanym katalogu uruchom `composer require stomp-php/stomp-php` 4. utwórz plik stomp.php:
I Tyle... |
|
|
20.09.2018, 14:22:50
Post
#16
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
ok działa dzięki.
Sorry za głupie pytania ... po prostu za dużo nie używałem composera. W sumie miałem "prawie" dobrze ... Instalowałem po prostu libkę w innym miejscu i całość później przeniosłem. Poza tym w kodzie w wywołaniu klasy Client nie podałem dokładnej ścieżki i nie zaincludowałem autoloadera ... Dzięki raz jeszcze za pomoc. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:40 |