Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Despre compania de aministrare Sq...

Durere taietura deget dupa 2 luni

Dalți gravare lemn

Didgeridoo
 Motorola Edge 50 Ultra

Gaura perete apartament cu evitar...

Orientare antena prime focus

Problema conectare mail yahoo
 comisioane asociatie proprietari

Primul sistem de televiziune cu p...

Internetul este neutilizabil fara...

Eroare cloud burn icopy face id
 DermaRoller ce este ?

Articole limba Germana

Cum se imparte legal o mostenire ...

Avem sanse sa avem energie electr...
 

concepte si design OOP

- - - - -
  • Please log in to reply
198 replies to this topic

#37
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005

Quote

modele pentru baza de date, helperi pt html sau json
imi poti dezvolta putin ideile astea ? eventual cu linkuri pentru ca am cautat si nu gasesc ceea ce mi-ar trebui.de fapt nici nu stiu ce caut :P

#38
florindinu

florindinu

    Junior Member

  • Grup: Members
  • Posts: 177
  • Înscris: 22.03.2008
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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
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
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Modificare temporară, ca să vezi:

View Postvali38, 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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
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
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postvali38, 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ă :P

#44
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005

View Postvali38, 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
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

#46
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postvali38, 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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
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
adormitu

adormitu

    Member

  • Grup: Members
  • Posts: 384
  • Înscris: 28.08.2008
conceptul de MVC (mai usor de inteles)

[ http://img22.imageshack.us/img22/1704/akelosmvc.png - Pentru incarcare in pagina (embed) Click aici ]

View Postvali38, 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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
am o intrebare legata de securitatea scripturilor,mai exact regula de aur :D

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
adormitu

adormitu

    Member

  • Grup: Members
  • Posts: 384
  • Înscris: 28.08.2008

Quote

constructor cu rol de setter
(cel putin pe mine aici m-ai bagat in ceata)
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
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postvali38, on Feb 21 2009, 14:10, said:

am o intrebare legata de securitatea scripturilor,mai exact regula de aur :D

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
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005
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
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostOriginalCopy, 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 :D

#54
vali38

vali38

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 16.10.2005

View Postvali38, 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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate