Skocz do zawartości
rafakl

[PHP]Gotowa aplikacja, jak zrobić w niej klasy

Polecane posty

Witam,


Otóż miałem do zrobienia aplikację z formularzem logowania, która przyjmuje wpisy (data, akcja, jaki użytkownik to zrobił etc). Aplikacja ta również posiada opcje edycji wpisów, usuwania ich, dodawania oraz przeglądania coś a la logów (po prostu do innej tabeli wpisuje to co userzy robili). Taka prosta aplikacyjka.

Mam pytanie w związku z tym, jak zrobić do tego klasy aby dało się zrobić dokumentację w UML w diagramie klas. Czy w takiej prostej aplikacyjce takie coś w ogóle da się zrobić?

Wiem, że może mętnie to wytłumaczyłem, także w przypadku jakiś pytań chętnie odpowiem.


PS. w aplikacji tej, nie definiowalem własnych funkcji, wszystko robilem na prostym html'u oraz na komendach PHP typu mysql_query, mysql_fetch_row, etc i do tego if'y oraz pętle while

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Odpowiem pytaniem na pytanie (wiem, że to nieładnie): a potrafisz programować obiektowo? Nie bierz tego do siebie, ale jak widzę po forach pytanie "jak zrobić do tego klasy", to człowiek łapy załamuje.

 

Bo mnie się wydaje, że (któreś z dwu):

- totalnie nie rozumiesz idei OOP, nie wiesz czym są klasy, obiekty, etc.

- ja tragicznie nie rozumiem Twojego pytania (albom za durny, albo tak je napisałeś, że sensu nie łapię. Obie możliwości są prawdopodobne w tym samym stopniu).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Odpowiem pytaniem na pytanie (wiem, że to nieładnie): a potrafisz programować obiektowo? Nie bierz tego do siebie, ale jak widzę po forach pytanie "jak zrobić do tego klasy", to człowiek łapy załamuje.

 

Bo mnie się wydaje, że (któreś z dwu):

- totalnie nie rozumiesz idei OOP, nie wiesz czym są klasy, obiekty, etc.

- ja tragicznie nie rozumiem Twojego pytania (albom za durny, albo tak je napisałeś, że sensu nie łapię. Obie możliwości są prawdopodobne w tym samym stopniu).

 

Hej pedro,

 

Właśnie dopiero powoli uczę się programować (moje doświadczenie w programowaniu w PHP to zaledwie miesiąc) oraz nie do końca łapię obiektowość.

 

Bardzo właśnie zależało by mi gdyby ktoś na podstawie programu który napisałem, powiedzial mi jak zrobić w niej klasy bo wtedy myślę że chwycilbym ich sens i chwyciłbym na czm polega obiektowość.

 

PS. Ja myslałem żeby zrobić klasę autentykacja, usuwanie wpisów, dodawanie wpisów, edycja wpisów, dziennik zdarzeń, oraz klasę operacje na wpisach która była by uogólnieniem dodawania, edycji i usuwania wpisow.

 

czy takie podejście jest dobre? Prosze o wyrozumiałość, ja już wpominałem moje doświadczenie z programowaniem to zaledwie miesiąc.

Edytowano przez rafakl (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przedstawię Ci najprostszą definicję obiektowości jaką znam.

 

Masz zrobić aplikację, która przechowuje dane o jakiś tam osobach. Każda osoba ma Imię, Nazwisko, Wiek. Jak byś to zaprogramował nieobiektowo? Pewno zrobił jakieś 3 tabele o wspólnych indexach, w której każda przechowuje co innego.

 

Tworzę sobie klasę/obiekt Osoba. Nadaje jej atrybuty Imię string, Nazwisko string i Wiek integer. Teraz tworzę sobie jedną tablicę/listę, która przechowuje obiekty typu Osoba. Całość sprowadza się do pojedynczego dodania nowej osoby z konkretnymi danymi i dodaniu jej do listy. A potem można np. dla każdej osoby for eachem wypisać jej wiek czy tam Imię.

 

Javowo rozwalenie takiego zadania na klasy jest szybsze prostsze i skuteczniejsze niż zabawy z tablicami. Generalnie tak długo póki operujesz na czymś co ma więcej atrybutów niż jeden wprowadza się klasy. Idąc najprostszym możliwym torem wystarczy Ci lista obiektów typu "wpis". A sam wpis ma tam aukcje osobę czy co tam chcesz.

 

I w ten sposób można stworzyć obiekt User, który ma id hasło IP, a potem Wpis który ma jakąś nazwę, środek i Usera, który go napisał (zauważ, że mamy obiekt w obiekcie).

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hej archi

 

Chyba bardziej załapalem sens obiektowości.

Na przykladzie mojej aplikacji miałby sens taki podzial na klasy?

klasa autentykacja

klasa operacje na wpisach, która była by uogolnieniem klasy dodawanie wpisów, klasy edycja wpisów, klasy usuwanie wpisów

klasa logowanie zdarzeń

klasa wylogowywanie

 

Podział ten wymyśliłem na takiej podstawie że diagram klas UML z takimi klasami dobrze pokazywałby strukturę programu

 

Taki podział ma sens? Jesli nie to jaki inny lepiej zaproponować?

Edytowano przez rafakl (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No to wybrałeś najgorszy chyba możliwie język do nauki OOP, chociaż zmienia się to, ale dosyć powoli.

 

Jak dla mnie, to są to dwa modele: User, Log reprezentujące kolekcję obiektów w bazie danych.

 

Zarówno logowanie, jak i wylogowanie powinno być częścią jakiejś warstwy Security (albo Auth). To nie są osobne klasy, dalej nie łapiesz :)

 

Parę rad (pisane prostym językiem):

- używaj angielskiego nazewnictwa klas, baz danych, tabel, kolumn (nie ma nic gorszego niż Uzytkownicy_ID)

- pamiętaj o Zasadzie pojedynczej odpowiedzialności (Wiki: http://pl.wikipedia.org/wiki/Zasada_jednej_odpowiedzialno%C5%9Bci) nie klep klas, które robią "wszystko"

 

PS. Nie ma w języku polskim słowa "autentykacja" :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No to wybrałeś najgorszy chyba możliwie język do nauki OOP, chociaż zmienia się to, ale dosyć powoli.

 

Jak dla mnie, to są to dwa modele: User, Log reprezentujące kolekcję obiektów w bazie danych.

 

Zarówno logowanie, jak i wylogowanie powinno być częścią jakiejś warstwy Security (albo Auth). To nie są osobne klasy, dalej nie łapiesz :)

 

Parę rad (pisane prostym językiem):

- używaj angielskiego nazewnictwa klas, baz danych, tabel, kolumn (nie ma nic gorszego niż Uzytkownicy_ID)

- pamiętaj o Zasadzie pojedynczej odpowiedzialności (Wiki: http://pl.wikipedia.org/wiki/Zasada_jednej_odpowiedzialno%C5%9Bci) nie klep klas, które robią "wszystko"

 

PS. Nie ma w języku polskim słowa "autentykacja" :)

 

 

A mogłbyś zaproponować jakiś model UML do tego? Wtedy może bardziej chwyce o co w tym chodzi na zywym przykładzie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

@Archi mi w szkole pani mówiła że jak Java to tylko obiektówka :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Kamikadze

I generalnie to się sprawdza, bo na dzień dzisiejszy jeśli widzę, że coś można rozwalić łatwiej, lepiej i przyjemniej za pomocą klas to to robię. Aczkolwiek również nie można ich wciskać na siłę, jak to zamiar ma zrobić pan dwa posty wyżej.

 

Dobry programista czuje gdzie klasa będzie pięknie pasowała, a gdzie lepiej jej unikać. Jeśli mamy "coś", co ma różne atrybuty jak np. usera, post, to lepiej to wcisnąć jako klasy/obiekty. Jak mamy coś pojedynczego jak temat czy adres IP to większego sensu to nie ma.

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

No wiadomo jak program jest typu hello world to kombinacje alpejskie będą :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×