Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Stosowanie class / jak sie tego nauczyc ? :)
bigos1995-95
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Witam, jestem początkujący w nauce php. Uczę się z książki Vademecum wydanie IV i doszedłem do tematu z klasami do tego tworzenie własnych funkcji. Siedzę już nad tym może z 4 dni i nie mogę tego pojąć. Może mi ktoś dać jakiś poradnik, filmik cokolwiek co mi przybliży stosowanie class, function i mnie tego jakos nauczy bo nie wiem czy to jest takie trudne czy ja jestem taki tępy smile.gif biggrin.gif
Go to the top of the page
+Quote Post
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


http://pl.wikibooks.org/wiki/PHP


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
tehaha
post
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


To nie jest temat, który da się streścic w kilku słowach i programowania obiektowego nie ogarniesz w kilka dni, więc nie martw się, nie będzie łatwo ale im dłużej będziesz w tym siedział tym łatwiej potem będzie. Ważne jest aby znaleźć taki kurs/książkę, który będzie dla Ciebie w odpowiednim tempie zwiększał poziom. Wpisz sobie w Google albo na YouTube "php OOP tutorial" i masz tego mnóstwo, wybierz taki, który Ci pasuje. Ponadto, żeby to zrozumieć to musisz sam zacząć pisać, więc musisz postawić sobie serwer na komputerze i zacząć pisać swoje skrypty, bo inaczej tego się nigdy nie nauczysz. W książce powinny być przykładowe kody i ćwiczenia. I jeszcze jedna rada, jeżeli przestałeś nadążać za materiałem w książce to zacznij ją czytać od początku, jak jest dobra książka to warto ją przerobić kilka razy, bo po jednorazowym przeczytaniu nie nauczysz się tego stosować. I na koniec pisać, pisać i jeszcze raz pisać. Pozdro
Go to the top of the page
+Quote Post
bigos1995-95
post
Post #4





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Wiem ,że najważniejsze to się nie poddawać i czytać pisać czytać pisać albo myślę że lepiej bym zrozumiał jakby ktoś mi to wytłumaczył na filmiku na konkretnych przykładach. Nie znacie może jakiegoś dobrego video tutoriala do class?
Go to the top of the page
+Quote Post
tehaha
post
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Jedną z niezbędnych umiejętności jakie musisz nabyć, jeżeli chcesz nauczyć się programować to umiejętność wyszukiwania informacji w internecie, nie myśl, że masz pytania i wątpliwości bo jesteś początkujący, nawet jak będziesz w tym siedział kilka lat to i tak będzie cała masa rzeczy, których nie będziesz wiedział i dlatego musisz się nauczyć odpowiadać na postawione przez siebie pytanie. Odpalasz youtube i jak wpiszesz "php oop class" to masz całą masę filmików o tym, czego szukasz, jak wpiesz to samo w Google to znajdziesz pełno kursów i artykułów. Co jak co ale kursów do php w sieci nie brakuje, musisz po prostu przysiąść i to przerobić tutaj nikt nie będzie Ciebie za rączkę prowadził, jak Ci jakiś kurs nie pasuje to sobie znajdujesz inny.

Masz tu kilka linków:
http://www.youtube.com/watch?v=LDgd_gUcqCw...feature=related
http://www.youtube.com/watch?v=0lydYnGLDrs
http://www.youtube.com/watch?v=MCChD2GMBow
http://www.youtube.com/watch?v=Yd3SMOuEwlE
https://www.google.pl/search?q=php+opp+class

Poszukaj w Google i na Youtube, to nie boli smile.gif
Go to the top of the page
+Quote Post
!*!
post
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Filmiku? PHP to nie kurs grafiki. Jak nie rozumiesz tego co jest napisane w wikibooks, pomimo że czytałeś to więcej niż raz, to odpuść to sobie na jakiś czas. Przykłady tam opisane są banalne i już wielu się na nich uczyło. Jeśli po jakimś czasie odpoczynku wrócisz i nadal tego nie opanujesz, to może odpuść, bo to nie dla Ciebie.

tehaha - zaraz będzie że to nie po polsku wink.gif

Ten post edytował !*! 17.06.2012, 19:04:57


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
bigos1995-95
post
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Dobra "!*! może i miałeś racje ;D ale uczę się języka angielskiego w szkole prawie 10 lat do tego chodzę na korepetycje, może i umiem dosyć dobrze gramatykę i znam słówka ale co z tego jak nie mam styczności z tym językiem w prawdziwym świecie i ciężko jest mi zrozumieć typowego anglika. "tehaha" a co do tych filmików to polowe z nich już widziałem albo chodzilo mi bardziej o cos trwającego z 2h po polsku. Ale dobra chyba sobie odpuszczę te filmiki tylko zacznę od początku działu class i będę wszystko testował na własnym hostingu to może jakoś sobie wbije do głowy te klasy.A co do samego języka do nauka go po kilka godzin co dziennie jest naprawdę męczące i po jakimś czasie się nie chce lecz po jakimś czasie chęci powracają. A co sądzicie o sposobie uczenia się języka ? Ja myślałem żeby przerobić cała książkę "tak z grubsza", poznać możliwości jezyka i dopiero wtedy zaczynać tworzyć jakieś własne projekty.
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #8





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Tu nie ma co pisać i testować, najpierw trzeba zrozumieć koncepcję. Nie rozumiesz podstaw programowania obiektowego czy OOP w wykonaniu PHP?
Go to the top of the page
+Quote Post
tehaha
post
Post #9





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Bez angielskiego w programowaniu to jak bez nogi, daleko nie zajdziesz, niestety ale większość materiałów, dokumentacji, wsparcia na forach jest po angielsku więc angielski to podstawa, książek też jest o wiele więcej i są dużo lepiej napisane, bo niestety wiele słów technicznych nie ma swoich odpowiedników w języku polskim, więc te tłumaczone często ciężej się czyta niż oryginały. Takich filmów po polsku raczej nie znajdziesz, więc możesz porzucić nadzieję.

Nauka programowania na początku jest ciężka i bardzo frustrująca, ale jak przebrniesz przez początek to potem jest z górki.

Cytat
Ja myślałem żeby przerobić cała książkę "tak z grubsza", poznać możliwości jezyka i dopiero wtedy zaczynać tworzyć jakieś własne projekty.
Tak się nie nauczysz, ja polecam przepisywanie wszystkich przykładów ręcznie, odpalanie i "pobawienie się z nimi". I pamiętaj z książkami do programowania nie jest tak jak ze zwykłymi, to nie jest tak, że raz przeczytasz i umiesz, najlepiej zawsze jak się pogubisz to zaczynaj od początku książki, dobrze to robi zwłaszcza na początku. Tu nie ma czegoś takiego, że "z grubsza" wiesz o co chodzi. Ja wiele trudniejszych książek przerabiałem po 3-4 razy i nadal do nie których działów wracam, żeby sobie przypomnieć.

Pamiętaj też, że Google to Twoja prawa ręka, on odpowiednio zapytany odpowie na każde pytanie, jak wywali Ci parser jakiś błąd to go wklejasz w Google i masz rozwiązanie.

Cytat
tehaha - zaraz będzie że to nie po polsku wink.gif
hehe jasnowidz jaki czy co..tongue.gif
Go to the top of the page
+Quote Post
bigos1995-95
post
Post #10





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Można powiedzieć że tak w połowie. Definicje wszystkich funkcji znam ale co dalej to nie wiem.
np taki kod.

  1. class nazwaklasy
  2. {
  3. public $atrybut;
  4. function operacja($param)
  5. {
  6. $this->$atrubyt = $param
  7. echo $this->$atrybut;
  8. }
  9. }


i co to ma robić jakie to ma później zastosowanie nie wiem.
wiem ze dzieki $this-> dostajemy sie do zmiennej
za pomoca slowa function tworzymy nowa funkcje
a co ta klasa ma robic to nie wiem

Ten post edytował bigos1995-95 17.06.2012, 23:19:21
Go to the top of the page
+Quote Post
Niktoś
post
Post #11





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Tu nie ma co pisać i testować, najpierw trzeba zrozumieć koncepcję.

Ja jestem chyba innego zdania.Trzeba dużo ćwiczyć, aby "ogarnąć" np.typy klas np.static,protected,public ,sealed itp., i wiedzieć miej/więcej jak takie klasy się zachowują. Trzeba testować, testować i jeszcze raz testować i wyciągać wnioski.

Cytat
Siedzę już nad tym może z 4 dni i nie mogę tego pojąć. Może mi ktoś dać jakiś poradnik, filmik cokolwiek co mi przybliży stosowanie class, function i mnie tego jakos nauczy bo nie wiem czy to jest takie trudne czy ja jestem taki tępy

Tępy nie jesteś, to jest najtrudniejsza część programowania-tworzenie klas w oparciu o jakieś wzorce projektowe i wykorzystywanie ich w swoim projekcie.
To nie jest materiał na 4 dni, a na miesiące lub lata ,by móc się tym w pełni sprawnie posługiwać.

Ten post edytował Niktoś 17.06.2012, 23:31:22
Go to the top of the page
+Quote Post
bigos1995-95
post
Post #12





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


A zreszto dobra moze jakos sobie poradze, potestuje i moze cos wyjdzie ale to juz nie dzisiaj.
Go to the top of the page
+Quote Post
!*!
post
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(bigos1995-95 @ 18.06.2012, 00:18:48 ) *
  1. class nazwaklasy
  2. {
  3. public $atrybut;
  4. function operacja($param)
  5. {
  6. $this->$atrubyt = $param
  7. echo $this->$atrybut;
  8. }
  9. }


i co to ma robić jakie to ma później zastosowanie nie wiem.
wiem ze dzieki $this-> dostajemy sie do zmiennej
za pomoca slowa function tworzymy nowa funkcje
a co ta klasa ma robic to nie wiem


Piszesz klasę i nie wiesz co ma robić? Co chcesz. Zacznijmy od tego że nie piszemy echo w metodach(funkcjach) klasy, chyba że dla testu, w innym przypadku zapomnij o tym. Metody do jakiś się odwołujesz, mają zwracać dane, a nie je wyświetlać.
A klasa wyżej zwraca parametr metody jaki podałeś, nic więcej.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #14





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nie dziwię się, że nie rozumiesz co to ma robić, bo taka klasa nie ma żadnego sensu. Lepiej uczyć się na realnych przykładach:
  1. class Produkt
  2. {
  3. private $cena;
  4.  
  5. public function ustawCene($cena)
  6. {
  7. $this->cena = $cena;
  8. }
  9.  
  10. public function wyswietlCene()
  11. {
  12. echo $this->cena;
  13. }
  14. }


Cytat(!*!)
Zacznijmy od tego że nie piszemy echo w metodach(funkcjach) klasy, chyba że dla testu, w innym przypadku zapomnij o tym. Metody do jakiś się odwołujesz, mają zwracać dane, a nie je wyświetlać.

To takie szkolne uproszczenie. Klasy mogą używać dowolnych funkcji, ważne jest żeby robiły tylko to, do czego są przeznaczone. Przykładowo klasa Template może mieć metodę render, w której wystąpi echo i nic złego się nie stanie, albo bardziej abstrakcyjnie klasa Response z metodą send. Natomiast zastosowanie echo w klasie do obsługi bazy będzie już błędem projektowym.

Ten post edytował Mephistofeles 18.06.2012, 18:00:59
Go to the top of the page
+Quote Post
Dipter
post
Post #15





Grupa: Zarejestrowani
Postów: 81
Pomógł: 14
Dołączył: 28.11.2010
Skąd: Kraków

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


@Mephistofeles
Z jednej strony masz racje, ale z drugiej jeśli ktoś zawartość "renderowanego" szablonu będzie chciał wkleić do jakiegoś innego, albo chociażby próbował połączyć go z innym (prosty przykład - dołączyć go jako ciąg do zmiennej). Przy wywołaniu echo w klasie wszystko się posypie, dlatego lepiej wszystko zwracać, a dopiero na zewnątrz to w dany sposób wyświetlić/przesłać (bo niby dlaczego by nie wykorzystać szablonów do wysyłania maila? Wtedy cała klasa jest na nic).

Ten post edytował Dipter 18.06.2012, 18:04:53
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #16





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


@Dipter:
Owszem, to był prosty przykład, czasami więcej nie potrzeba, dlatego napisałem, że w bardziej abstrakcyjnym systemie tym zajmie się np. obiekt klasy Response.
Go to the top of the page
+Quote Post
bigos1995-95
post
Post #17





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Skończy się ten tydzień będę miał wolne od szkoły to się do tego przyłożę bo jak na teraz to nic was prawie nie rozumiem i brak czasu żeby cokolwiek pojąć
Go to the top of the page
+Quote Post
lukaskolista
post
Post #18





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


To moze teraz ja sprobuje opisac to w prosty sposob. Zakladam, ze programowac strukturalnie potrafisz. Teraz do rzeczy:

Obiekt - jest to swojego rodzaju unikalny byt, generalnie slowo "obiekt" moze opisywac cokolwiek, obiektem moze byc uzytkownik, polaczenie z baza danych,... doslownie wszystko.

Klasa - klasa to wzor obiektu. W klasie opisujesz cechy obiektu i jego zachowanie w poszczegolnych sytuacjach. Sama klasa nie jest obiektem, obiekt tworzy sie na podstawie klasy. Z zalozenia kazdy obiekt powinien byc inny - nie ma sensu tworzyc 2 takich samych obiektow, np. 2 polaczen z ta sama baza majacych te same parametry.

Wlasciwosc - wlasciwosc to cecha obiektu (zaimplementowana w klasie). Przykladowo wlasciwoscia moze byc nazwa uzytkownika - 2 roznie obiekty uzytkownikow beda mialy inne wartosci wlasciwosci "name" (bo 2 rozni uzytkownicy maja 2 rozne loginy). Wlaciwosc ma za zadanie opisac obiekt.

Metoda - metoda to tak na prawde funkcja operujaca na obiekcie (i nie tylko, bo sa metody statyczne, ale to zostawmy na razie). Metoda ma za zadanie wykonac operacje na obiekcie. Przykladowo metoda "logout" wywolana na obiekcie uzytkownika po prostu tego uzytkownika wyloguje.

To najprostszy opis obiektowosci, jaki przyszedl mi do glowy. Teraz przyklad:
  1. class User // Klasa uzytkownika, czyli taki "wzor obiektu"
  2. {
  3. private $_name; // Wlasciwosc (cecha) okreslajaca uzytkownika. Wazne jest, ze ta wlasciwosc nie jest widoczna poza obiektem, poniewaz jest prywatna
  4.  
  5. // Konstruktor moze byc tez prywatny, ale o tym kiedys
  6. public function __construct($name) // Konstruktor (metoda magiczna) - metoda, ktora jest wywolywana podczas tworzenia obiektu new User('name') - wartosc 'name' bedzie pod argumentem $name konstruktora
  7. {
  8. $this->_name = $name;
  9. }
  10.  
  11. public function logout() // metoda (operacja) wologowania
  12. {
  13. $this->_name = null; // "reset" wartosci wlasciwosci $_name
  14. }
  15.  
  16. }
  17.  
  18. $user = new User('lukaskolista'); // Tworzenie obiektu uzytkownika (juz konkretnego)
  19. $user->logout(); // Wylogowanie uzytkownika


Ten post edytował lukaskolista 19.06.2012, 08:11:21
Go to the top of the page
+Quote Post
bigos1995-95
post
Post #19





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Dzieki, troche bardziej mi to przybliżyłeś ale i tak musze sam troche nad tym posiedziec zeby to zrozumiec a wrazie jakis problemow bede pisal
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: 20.08.2025 - 19:57