![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[php:1:78eaaa3023]<?php
Class Object { var $db_data; var $data; var $table; function Object($table = null, $data = array(), $db_data = array()) { $this->table = $table; $this->data = $data; $this->db_data = $db_data; } function SetData($data = array()) { $this->data = $data; } function ReturnStringAND($data=null) { if (!is_array($data)) { $data = $this->data; } $string = array(); foreach($data as $key => $value) { if (!is_numeric($value)) { $value = "'$value'"; } $string[] = "$key = $value"; } $string = implode(" AND ", $string); return $string; } function ReturnString($data=null) { if (!is_array($data)) { $data = $this->data; } $string = array(); foreach($data as $key => $value) { if (!is_numeric($value)) { $value = "'$value'"; } $string[] = "$key = $value"; } $string = implode(", ", $string); return $string; } function ReturnFields() { $fields = array(); foreach($this->data as $key => $value) { $fields[] = "$key"; } $fields = implode(",", $fields); return $fields; } function ReturnValues() { $values = array(); foreach($this->data as $key => $value) { if (!is_numeric($value)) { $value = "'$value'"; } $values[] = "$value"; } $values = implode(",", $values); return $values; } } Class User extends Object { var $data; function User($data = array()) { $this->table = "users"; $this->data = $data; } } Class Session { function Login($user) { } } Class MySQL { var $host = "localhost"; var $login = "login"; var $password = "pass"; var $name = "name"; function MySQL() { mysql_pconnect($this->host, $this->login, $this->password); mysql_select_db($this->name); } } Class Database extends MySQL { function Get($object) { $o = mysql_query("SELECT * FROM " . $object->table . " WHERE " . $object->ReturnString()); $data = mysql_fetch_assoc($o); $object->setdata($data); return new Object($object->table, $data, $data); } function Add($object) { mysql_query("INSERT INTO " . $object->table . " (" . $object->ReturnFields() . ") VALUES (" . $object->ReturnValues() . ")"); return new Object($object->table, $object->data, $object->data); } function Save($object) { mysql_query("UPDATE " . $this->table ." SET " . $object->returnString() . " WHERE " . $object->returnStringAND($object->db_data)); return new Object($object->table, $object->data, $object->data); } function Delete($object) { mysql_query("DELETE FROM users WHERE " . $object->returnString()); return mysql_affected_rows(); } } ?>[/php:1:78eaaa3023] Mam tu podział na to, że mam oddzielne klasy dla każdej "warstwy" strony. Czy moje rozwiązanie jest jak by to nazwać... wydajne? bo w sumie to funkcjonalne w jakiś sposób na pewno... Jest jeszcze kwestia logowania użytkowników. Mianowicie zastanawiam się, czy funkcje dot. logowania user dać jemu samemu do klasy - User, czy też zrobić klasę Session i tam wrzucić logowanie itd - natomiast sprawdzanie danych itd.. odbywac się będzie właśnie w metodach Session. Czy to jest dobre rozwiązanie? -------------------- Klasy, obiekty, metody, właściwości itd... - pomocy!!!!
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 263 Pomógł: 0 Dołączył: 13.07.2003 Skąd: wawa Ostrzeżenie: (0%) ![]() ![]() |
hmmm...
i jeszcze raz hmm... kompletnie nie wiem o co w tej klasie ci chodzi ![]() ![]() ![]() ![]() ale odpowiem chociarz na to drugie pytanie, po pierwsze OOP jak sama nazwa wskazuje jest ideą obiektów, w pewnej książce czytałem doskonały przykład o tym jak rozpisywać projekt klas, patrz... mamy do zrobienia system obslugi firmy, wiemy ze będą obiekty związane z zarządzaniem użytkownikami , i z zarzadzaniem projektami itd, wiemy ze obiekty związane z zarządzeniami użytkownikami można dalej podzielić na obiekty związane z danymi użytkownika a jego logowaniem, wiemy że obiekty związane z danymi użytkownika można podzielić na formularze do obsługi tych danych i na obiekty zajmujące się komunikacja z baza danych itd itd, w książce tej było bardzo ładne podsumowanie, mniejwięcej tak, " i dochodzimy do wniosku że ten obiekt jest tak prosty że nie będzie problemów z jego napisaniem" ![]() otóż, każdy obiekt powinnien wykonywac jak najmniejszą ilość czynności, włąsciwie powinnien wykonywać jedną określoną czynność i nic więcej, więc nijak tutaj widzę powiązanie metod służących do autoryzacji z metodami do obsługi dodawania użytkowników czy też sesji. Odsyłam do googielków i proponuje dogłębnie przestudiowac temat OOP i również proponuję MVC ![]() Pozdrawiam patS -------------------- www.tigroup.pl Rozwiązania informatyczne dla sektora MSP.
Projektowanie i tworzenie stron www, dedykowane rozwiązania e-biznes, outsourcing usług programis |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
2 KWESTIE
1) Ok... powiedzmy, ze podzielimy wszystko tak jak w realnym świecie... czlowieka na organy i cechy, kazdy organ na tkanki, komorki, orgranelle, cząstki, atomy itd... ok... ale jak złożyć potem tego człowieka? rozumiem, że kolejne klasy muszą po sobie dziedziczyć - nadrzędna z podrzędnej - to jest oczywiste. Ale co zrobić, gdy taki np. człowiek słada się z kilku organów tej samej klasy - czyli obiektów danej klasy? - nie może przecież dziedziczyć po kilku rzeczach naraz... - wiec jak? jak go skonstuowac? czy tak? [php:1:f70718ae2a]<?php Class atom { właściwośći i metody... } Class czastka extends atom { właściwośći i metody... } ?>[/php:1:f70718ae2a] i tu pojawia się pierwszy problem - jak zrobić, żeby cząstka mogła się składać z więcej niż jednego atomu? - bo później organella będzie składała się tak samo - z wielu cząstek Czy ktoś może mi pomóć? 2) to tyle jeśli chodzi o podzielność - teraz mam pytanko jeśli chodzi o podział zadań. w moim przykładzie widać to dokładnie - można przestudiować biologię i zrozumieć, że w sumie każda rzecz ma tylko 3 sprawy - żyć, być podzielną oraz laczyc sie z inną - taką samą - by tworzyć obiekt wyższej klasy. W tym punkcie sprawa tyczy się samego życia - łatwo jest to zrobić w przypadku prostej komórki bo byloby to cos takiego: [php:1:f70718ae2a]<?php Class organella { metody - korzystanie z zasoboow i zwracanie produktoow - wlasciwosci - cechy konkretnej organelli - typ, nazwa itd... } Class komoorka - i tu jakos zrobic, zeby skladala sie z kilku organelli { metody - tak jak w przypadku organelli - zyje i korzysta z zasoboow swoich obiektoow podrzednych, ktore ja tworza wlasciwosci - j/w/ nazwa itd... } ?>[/php:1:f70718ae2a] - jesli dobrze mi sie zdaje to jest to chyba ok? A jak to przelozyc na problematyke serwisu internetowego ? - oraz czy tak nie stwarzamy sobie mega-skomplikowanej struktury, ktoora tak naprawde nie wymaga mega - komplikacji? Czy macie jakies linki do (najlepiej polskich) stron o tym? -------------------- Klasy, obiekty, metody, właściwości itd... - pomocy!!!!
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 1.10.2003 Skąd: Mikołów Ostrzeżenie: (0%) ![]() ![]() |
Sprobuje odpowiedzieć na pkt 1. Przynajmniej jak ja to bym widział
[php:1:505b083a48]<?php Class atom { //właściwośći i metody... } Class czastka { var $atomy=array();//tablica obiektow atom z któych składa się cząstka //właściwośći i metody (w tym sterujące atomami - dołączanie atomów usuwanie itp)... } Class Komorka { var $czastki=array();//tablica obiektów cząstek z których składa się komórka //właściwości i metody (w tym sterujące cząstkami w komórce)... } ?> [/php:1:505b083a48] Oczywiście może powstać konieczność określenia pozycji atomu w cząstce. Wtedy możemy zrobić to tak: [php:1:505b083a48]<?php class atom_w_czastce extends atom { var $pozycja_w_czastce; } //i teraz Class czastka { var $atomy=array();//tablica obiektow atom_w_czastce z których składa się cząstka (wraz z określeniem pozycji atomu w cząstce) //właściwośći i metody (w tym sterujące atomami - dołączanie atomów usuwanie itp)... } ?>[/php:1:505b083a48] lub ew. [php:1:505b083a48]<?php class atom_w_czastce { var $atom;//obiekt atom var $pozycja_w_czastce; } //i teraz Class czastka { var $atomy=array();//tablica obiektow atom_w_czastce z których składa się cząstka (wraz z określeniem pozycji atomu w cząstce) //właściwośći i metody (w tym sterujące atomami - dołączanie atomów usuwanie itp)... } ?>[/php:1:505b083a48] Mam nadzieje że nie zamieszałem... ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 18:33 |