![]() |
![]() |
![]()
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? |
|
|
![]() |
![]()
Post
#2
|
|
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? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 15:48 |