concepte si design OOP
Last Updated: Mar 13 2016 20:30, Started by
vali38
, Feb 12 2009 21:37
·
0
#37
Posted 16 February 2009 - 18:36
Quote modele pentru baza de date, helperi pt html sau json |
#38
Posted 16 February 2009 - 21:31
Felicitari, se poate si mai bine dar avand in vedere de unde ai inceput eu zic ca te-ai descurcat destul de bine, tine-o tot asa
In continuare citeste cartea pe care ti-am recomandat-o si ai sa intelegi mult mai multe. Ai sa intelegi si recomandarile lui OriginalCopy mai bine si daca inca nu te-ai saturat de exercitiul cu garajul el ti-a dat niste idei bune de extindere. @OriginalCopy: thanks for keeping the thread alive, eu am terminat minivacanta , inapoi la lucru.. Imi place ideea cu folosirea limbajului natural, exact asta facem la lucru, dar pentru date (eg. $date = 'acum 3 zile' ) |
#39
Posted 17 February 2009 - 13:21
am o problema care tine de sintaxa si nu reusesc sa imi dau seama unde gresesc.de fapt stiu unde dar nu stiu cum sa corectez
public function DatabaseInsert($table,$data){ if(!is_array($data)) return FALSE; foreach($data as $aux=>$val){ $data[$aux]=$this->DatabaseEscape($val); } $cols=array_keys($data); $values=array_values($data); return $this->DatabaseQuery("INSERT INTO ".$table." (".implode(',',$cols).") VALUES (".implode(',',$values).")"); } public function DatabaseQuery($sql){ if(FALSE===mysql_query($sql,$this->connection)){ return FALSE; } else { return mysql_query($sql,$this->connection); } }imi spune ca cererea mysql nu este valida.probabil ca lipsesc ghilimelele dar nu cred ca aici este problema pentru ca am incercat sa le pun acolo unde trebuie si primeam acelasi mesaj |
#40
Posted 17 February 2009 - 14:05
Modificare temporară, ca să vezi:
vali38, on Feb 17 2009, 14:21, said: am o problema care tine de sintaxa si nu reusesc sa imi dau seama unde gresesc.de fapt stiu unde dar nu stiu cum sa corectez public function DatabaseInsert($table,$data){ if(!is_array($data)) return FALSE; foreach($data as $aux=>$val){ $data[$aux]=$this->DatabaseEscape($val); } $cols=array_keys($data); $values=array_values($data); throw new Exception("INSERT INTO ".$table." (".implode(',',$cols).") VALUES (".implode(',',$values).")"); return $this->DatabaseQuery("INSERT INTO ".$table." (".implode(',',$cols).") VALUES (".implode(',',$values).")"); } public function DatabaseQuery($sql){ if(FALSE===mysql_query($sql,$this->connection)){ return FALSE; } else { return mysql_query($sql,$this->connection); } }imi spune ca cererea mysql nu este valida.probabil ca lipsesc ghilimelele dar nu cred ca aici este problema pentru ca am incercat sa le pun acolo unde trebuie si primeam acelasi mesaj Iar clasa asta nu pare conceputa ca un model pentru un anumit tabel. Citește aici, și ce ți s-a mai spus, pentru că ai de recuperat. |
#41
Posted 17 February 2009 - 15:36
am citit ce mi-ai dat
din ce am inteles foloseste o clasa pe post de framework (cu operatiile de baza si niste proprietati auxiliare daca le pot numi asa) dupa care o extinde pentru fiecare tabel din baza de date.ok pana aici dar de ce o extinde ? de ce trebuie sa creez modele pentru fiecare tabel in parte ? Quote The end result is that you never have to code any of the SQL SELECT, INSERT, UPDATE or DELETE statements for any table as they will be generated at runtime. LE: tutorialul care mi l-ai dat mi se pare destul de complex.poate cel mai bun din toate pe care m-am uitat Edited by vali38, 17 February 2009 - 15:37. |
#42
Posted 17 February 2009 - 17:25
in ultimul timp m-am cam obisnuit sa primesc totul de-a gata.am gasit singur reaspunsul la intrebarea adresata de mine mai sus
|
#43
Posted 17 February 2009 - 17:53
vali38, on Feb 17 2009, 18:25, said: in ultimul timp m-am cam obisnuit sa primesc totul de-a gata.am gasit singur reaspunsul la intrebarea adresata de mine mai sus Da Până acum ți s-a arătat calea. Nu are rost să repetăm lucruri pe care oricum trebuie să le citești și să le înțelegi singur (foarte sănătos!), ceea ce nu înseamnă că nu ai găsi răspunsuri p-aci când rămâi cu întrebări după lectură |
#44
Posted 18 February 2009 - 17:17
m-am uitat pe siteurile unor librarii in speranta ca voi gasi ceva pentru OOP si nu reusesc sa dau de nimic.cartea care am primit-o ca model cu cateva posturi in urma e in engleza si sunt foarte sigur ca atunci cand incerc sa invat omit destul de multe lucruri.in engleza am gasit destule carti dar traducerea este diferita si nu dau de ele prin bibliotecile din romania
|
#45
Posted 18 February 2009 - 18:11
vali38, on Feb 18 2009, 17:17, said: m-am uitat pe siteurile unor librarii in speranta ca voi gasi ceva pentru OOP si nu reusesc sa dau de nimic.cartea care am primit-o ca model cu cateva posturi in urma e in engleza si sunt foarte sigur ca atunci cand incerc sa invat omit destul de multe lucruri.in engleza am gasit destule carti dar traducerea este diferita si nu dau de ele prin bibliotecile din romania am incercat sa creez un model pentru un tabel in care sunt stocate datele membrilor.am incercat sa creez o clasa de baza cu comenzile uzuale mysql si o clasa derivata pentru acel tabel vreau sa fac sistemul de inregistrare si nu stiu cum sa procedez.la cum am creat metoda de inserare in baza de date, trebuie sa trimit ca paramatru un array cu campurile in care inserez si valorile.este corecta procedura asta ? am incercat sa urmez exemplul dat de original copy legat de sistemul de inregistrare.pentru validarea datelor trebuie sa creez o clasa cu metode care sa realizeze asta ? m-am gandit ca ma complic destul de mult.eu nu am nevoie decat de inputurile valide.cred ca trebuie sa precizez mai intai ca acest tip de validare nu il mai folosesc nicaieri in proiect |
#46
Posted 18 February 2009 - 22:25
vali38, on Feb 18 2009, 19:11, said: scuze pentru dublu post dar nu am posibilitatea de a modifica decat un intr-un interval destul de scurt de timp si nu m-am incadrat am incercat sa creez un model pentru un tabel in care sunt stocate datele membrilor.am incercat sa creez o clasa de baza cu comenzile uzuale mysql si o clasa derivata pentru acel tabel vreau sa fac sistemul de inregistrare si nu stiu cum sa procedez.la cum am creat metoda de inserare in baza de date, trebuie sa trimit ca paramatru un array cu campurile in care inserez si valorile.este corecta procedura asta ? am incercat sa urmez exemplul dat de original copy legat de sistemul de inregistrare.pentru validarea datelor trebuie sa creez o clasa cu metode care sa realizeze asta ? m-am gandit ca ma complic destul de mult.eu nu am nevoie decat de inputurile valide.cred ca trebuie sa precizez mai intai ca acest tip de validare nu il mai folosesc nicaieri in proiect Uite eu cum as face: cate o clasa pentru fiecare table, fiecare constructor accepta ca parametru un handler pentru conexiunea db. Deocamdata ne limitam la mysql, nu facem si abstractizarea dbms-ului. Un model de genul Model_Users ar avea metode de genul: exists($username), getPassword($username), setPassword($username,$password), etc. Avantajul? Vei putea schimba DBMS-ul sau modifica orice tabel fara sa trebuiasca sa cauti in lung si-n lat tot codul din intreg proiectul dupa cereri SQL puse ad-hoc, pe unde nimeresti. Cand faci o modificare in tabel, nu trebuie sa modifici decat modelul respectiv, iar schimbarile sunt total transparente din perspectiva restului de componente din proiect. Prin transparenta eviti frustrarea, eviti modificari inutile, eviti buguri stupide. |
|
#47
Posted 20 February 2009 - 22:33
am pus cap la cap mai multe lucruri si cred ca am reusit sa fac ceva frumos
acum sa presupunem ca extrag dintr-o baza de date informatii.cum le afisez ? |
#48
Posted 21 February 2009 - 08:42
conceptul de MVC (mai usor de inteles)
[ http://img22.imageshack.us/img22/1704/akelosmvc.png - Pentru incarcare in pagina (embed) Click aici ] vali38, on Feb 20 2009, 22:33, said: am pus cap la cap mai multe lucruri si cred ca am reusit sa fac ceva frumos acum sa presupunem ca extrag dintr-o baza de date informatii.cum le afisez ? Le afisezi in view... |
#49
Posted 21 February 2009 - 13:10
am o intrebare legata de securitatea scripturilor,mai exact regula de aur
am definit o clasa cu o metoda constructor cu rol de setter care preia prin intermediul parametrilor date trimise prin $_POST.unde trebuie sa aplic regula de aur ca totul sa fie ok ? este bine asa ? public function __construct($subject){ $this->subject=$this->XSSSecurity($subject); //XSSSecurity elimina tagurile php si html si converteste caracterele speciale }intreb asta pentru ca nu stiu daca in functia de mai sus pot aparea erori.am incercat sa verific in diferite moduri si de fiecare data totul a fost ok.probabil ar putea sa apara ceva la nivelul parametrilor dar la testul meu nu s-a intamplat nimic Edited by vali38, 21 February 2009 - 13:12. |
#50
Posted 21 February 2009 - 13:18
Quote constructor cu rol de setter cat despre regula de aur... e de preferinta aplicata... unii o aplica inainte de a folosii datele (expunerea lor), iar altii la primirea lor. Tine de obisnuinta... |
#51
Posted 21 February 2009 - 15:49
vali38, on Feb 21 2009, 14:10, said: am o intrebare legata de securitatea scripturilor,mai exact regula de aur am definit o clasa cu o metoda constructor cu rol de setter care preia prin intermediul parametrilor date trimise prin $_POST.unde trebuie sa aplic regula de aur ca totul sa fie ok ? este bine asa ? public function __construct($subject){ $this->subject=$this->XSSSecurity($subject); //XSSSecurity elimina tagurile php si html si converteste caracterele speciale }intreb asta pentru ca nu stiu daca in functia de mai sus pot aparea erori.am incercat sa verific in diferite moduri si de fiecare data totul a fost ok.probabil ar putea sa apara ceva la nivelul parametrilor dar la testul meu nu s-a intamplat nimic 1. Ai un constructor cu rol de setter. Probabil ai si un setter, deci foloseste-l. Codul e acolo (setSubject($newSubject)), deci apeleaza-l, nu conteaza daca apelantul este un alt obiect sau obiectul insusi: public function __construct($subject) { $this->setSubject($this->XSSSecurity($subject)); } Totusi, doar clasa asta va folosi "XSSSecurity()" si in viitor? Esti absolut sigur? Daca nu, atunci creaza un helper (the helper pattern in cartea recomandata de florindinu), helper care va putea fi folosit de orice alt obiect, sau chiar procedural. Cat despre cand trebuie facuta curatarea datelor, tu ce crezi? Gandeste-te la avantaje/dezavantaje, sa vad daca le nimeresti (exercitiu care te stimuleaza sa gandesti dincolo de "cod concret", in termeni abstracti, aparent nerelatate la programare). |
|
#52
Posted 21 February 2009 - 16:18
legat de carte.am tot cautat si am dat intr-un final pe un site de o colectie de 344 de pagini,de aceeasi autori ca cea recomandata de florindinu.aici este cartea si aici o alta descriere
cartea care am gasit-o eu este din 2002 si este ceva mai mica.se pare ca trateaza aceleasi lucuri ca si modelul din 1995 |
#53
Posted 21 February 2009 - 16:28
OriginalCopy, on Feb 21 2009, 16:49, said: Cat despre cand trebuie facuta curatarea datelor, tu ce crezi? Gandeste-te la avantaje/dezavantaje, sa vad daca le nimeresti (exercitiu care te stimuleaza sa gandesti dincolo de "cod concret", in termeni abstracti, aparent nerelatate la programare). ... LE: of gramatica asta, cred ca e greu sa te concentrezi cand in jurul tau se vorbeste in germana, citesti o documentatie in engleza, repari un cod si raspunzi pe forumuri in romana |
#54
Posted 21 February 2009 - 16:40
vali38, on Feb 21 2009, 16:18, said: legat de carte.am tot cautat si am dat intr-un final pe un site de o colectie de 344 de pagini,de aceeasi autori ca cea recomandata de florindinu.aici este cartea si aici o alta descriere cartea care am gasit-o eu este din 2002 si este ceva mai mica.se pare ca trateaza aceleasi lucuri ca si modelul din 1995 datele trebuiesc curatate inainte de a fi folosite prima oara.ma gandesc ca ar trebui sa fac asta inainte de a le trimite ca parametru dar cum asta nu e posibil nu stiu ce sa aleg.am o singura clasa in care si mai multe metoda printre care si cea de curatare.pe calea pe care am luat-o (dau valori in metoda construct cu ajutorul careia defines proprietatile) nu vad nici o solutie.cred ca ar trebui sa fac un setter pentru fiecare proprietate ca sa pot curata inputul inainte de prima utilizare |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users