Matsemann Skrevet 10. november 2010 Del Skrevet 10. november 2010 Noen tips til gode artikler på OOP i PHP? Jeg kan det grunnleggende, hvordan ting funker osv. Det er det å bruke det i en sammenheng, et større prosjekt, jeg lurer på. Lenke til kommentar
Thomas. Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Noen tips til gode artikler på OOP i PHP? Jeg kan det grunnleggende, hvordan ting funker osv. Det er det å bruke det i en sammenheng, et større prosjekt, jeg lurer på. http://www.youtube.com/watch?v=jdYneknFpoI Lenke til kommentar
Ståle Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 (endret) Litt overdreven bruk av $this vel? Og kreve at passordet bare består av AZaz09@. wut Endret 5. desember 2010 av Ståle Lenke til kommentar
Jonas Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 (endret) Hvis du har lyst til å drive med ordentlig systemutvikling i PHP, så foreslår jeg at du begynner å lese deg opp på arkitekturer i første omgang. Det vist i videoen er ikke "advanced" for fem jævla flate øre. Det er et klassisk eksempel på The Retard Way of OOP™. Vedkommende har tatt kode han er vandt med å skrive og bare innkapslet den i en klasse. Kraften i objekter blir ikke utnyttet på noen som helst måte og koden er like lite dynamisk som den var uten dem. Litt overdreven bruk av $this vel? Eh, hva slags antall «$this» mener du en kode bør inneholde? Endret 5. desember 2010 av Jonas Lenke til kommentar
Ståle Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 (endret) Mente å bruke this for å referere til funksjonene og variablene i klassen som hadde blitt referert til uten bruk av this. Tenkte på feil språk. :/ Endret 5. desember 2010 av Ståle Lenke til kommentar
Alex Moran Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 99/100 «tutorials» om OOP i PHP som ligger på nettet viser det Jonas så fint kaller «The Retard Way of OOP™». Jeg foreslår heller at man leser seg opp på ulike design patterns og litt grunnleggende objektorientert teori. Patterns of Enterprise Application Architecture er en god bok om emnet. Et stikkord jeg vil nevne når det gjelder organisering av kode i alle prosjekter, små som store, er MVC, hvor man deler inn koden i ulike logiske enheter. Det hjelper selvsagt ikke å lese seg i hjel, og da kan det være et smart trekk å studere hvordan f.eks. Ruby On Rails gjør ting. Ting du plukker opp her kan enkelt overføres tilbake til PHP, dersom det skulle bli aktuelt å gå tilbake. Ellers har jo PHP enkelte rammeverk du kan se på: Lithium og Symfony 2 for å få en idé om hvordan du kan ta i bruk OOP i egne prosjekter. Lenke til kommentar
Matsemann Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Jeg har boken du nevner, Dr. Awesome. Lenke til kommentar
ze5400 Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 (endret) Det er et klassisk eksempel på The Retard Way of OOP™. Du sier akkurat det du mener, som vanlig, ja Genialt ^^ Men ja, jeg syns jo selv det var en pussig måte å gjøre ting på i den YouTube-videoen. Ser for meg vitsen med mange instanser av den klassen, ja ^^ But then again, PHP støtter ikke statiske klasser eller namespaces (såvidt meg bekjent), så det er jo én måte å gjøre det på organisere kode på ... Dog ikke "avansert OOP" akkurat, slik han hevder ... Endret 5. desember 2010 av ze5400 Lenke til kommentar
Alex Moran Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Både statiske klasser og namespaces er støttet i PHP. Lenke til kommentar
ze5400 Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Både statiske klasser og namespaces er støttet i PHP. Ah, fantastich! Skriver ikke stort PHP så ante faktisk ikke det. Men er du sikker på at PHP støtter statiske klasser? Jeg vet det støtter klasser med bare statiske medlemmer, men jeg tror ikke man kan deklarere selve klassen som static. Ikke det at det har så forbannet mye å si om man har en static klasse eller en klasse med bare statiske medlemmer, dog ... Lenke til kommentar
Avean Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 (endret) Hjelp meg å tenke Skal slenge inn fødselsdatoen i databasen. Der har jeg egen dato kolonne som er formatert som dato altså (0000-00-00) Så siden jeg må ha inn 3 verdier fra registreringsskjemaet inn i en kolonne så tenkte jeg å sette det opp slik $dateofbirth = $_POST['year,month,day']; og deretter inserte variabelen $dateofbirth i databasen. Men ingenting blir sendt til databasen. Jeg gjør sikkert noe feil med variabelen ovenfor. Kan man gjøre slikt ? For jeg har 3 select name med year, month og day. Endret 5. desember 2010 av Avean Lenke til kommentar
j-- Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Nå leter scriptet ditt etter $_POST-variabelen "year,month,date", og denn finnes da ikke. $_POST['year'], $_POST['month'] og $_POST['day'] finnes kanskje =) Lenke til kommentar
Avean Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Selvsagt.... holder på for lenge så glemmer jeg det basice. takker! Lenke til kommentar
Thomas. Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Symfony 2 Makan til stort system (mange filer) Har du ikke noe litt "mindre" systemer, men alikavell har cache? Jonas, hva mener du med "kraften det egentlig er i objekter", hva er det og hvordan utnytter man den? Lenke til kommentar
Avean Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Nå leter scriptet ditt etter $_POST-variabelen "year,month,date", og denn finnes da ikke. $_POST['year'], $_POST['month'] og $_POST['day'] finnes kanskje =) Snodig vil fortsatt ikke skrive inn datoen. Jeg prøvde 2 måter. Først som ovenfor. $date = $_POST['year'] . $_POST['month'] . $_POST['day']; Det funket ikke Så delte jeg de opp i variabler. Altså $year = $_POST'year'] og deretter kombinerte alle de variablene i $date og så inserta $date i databasen men står fortsatt 0000.00.00 der. Er ikke begge måtene her riktig egentlig? Lenke til kommentar
j-- Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 (endret) Om du skal ha formatet xxxx.yy.zz gjør du det feil. $date vil nå være xxxxyyzz. Ser du hvorfor? Endret 5. desember 2010 av cvłñ Lenke til kommentar
Avean Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Ja fant ut det, tok en test og printa ut variablen og så formatet ble helt feil ja. $date = date("Y-m-d", strtotime($year . $month . $day)); var løsningen Lenke til kommentar
Thomas. Skrevet 12. desember 2010 Del Skrevet 12. desember 2010 (endret) Hvordan ville dere gjort det med klasser om man skal sette opp et raskt og fleksibelt brukersystem? Brukersystemet skal ha et template-system også. Jeg tenker noe sånt: class SQL class User Dette er hva jeg har til nå: User class User { private $db; public function __construct($db) { if(is_object($db)) { $this->db = $db; } else { throw new Exception('Kunne ikke hente databasetilkoblingen!'); } } public function test() { $sql = $this->db->query('SELECT * FROM tabell'); foreach($sql as $row) { echo $row['id'] . '<br>'; } } } SQL interface Interface_DB { public function connect(); public function setDbHost($host); public function setDbUser($user); public function setDbPass($pass); public function setDbName($dbnm); } class SQL implements Interface_DB { protected $instance = NULL; private $db_host; private $db_user; private $db_pass; private $db_database; public function connect() { if(!isset($this->instance)) { try { $this->instance = new PDO('mysql:host=' . $this->db_host . ';dbname=' . $this->db_database, $this->db_user, $this->db_pass); $this->instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->instance->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); } catch(Exception $e) { die('Kunne ikke koble til databasen!'); } } return $this->instance; } protected function __clone() { } public function setDbHost($host) { $this->db_host = $host; return $this; } public function setDbUser($user) { $this->db_user = $user; return $this; } public function setDbPass($pass) { $this->db_pass = $pass; return $this; } public function setDbName($dbnm) { $this->db_database = $dbnm; return $this; } } } $dbSettings = new SQL; $dbSettings -> setDbHost(DB_HOST) -> setDbUser(DB_USER) -> setDbPass(DB_PASS) -> setDbName(DB_DB); $dbResource = $dbSettings->connect(); $user = new User($dbResource); $user->test(); Hva tenker dere om en slik "løsning"? Trenger noen tips og ide'er hvordan jeg skal gjøre det med brukerfunksjon også videre. Skal jeg lagre brukerinnformasjon i variabler i klassen User? Endret 12. desember 2010 av Thomas. Lenke til kommentar
Ernie Skrevet 13. desember 2010 Del Skrevet 13. desember 2010 Det var jo ikke allverdens kode å kommentere på. Dog det er noen designfeil. Hva er poenget med å returnere $this i alle de funksjonene? Det er iallfall ikke særlig pent. Dessuten, når har du behov for å endre host, brukernavn, passord og database midt inni eksekveringen (selv om det slik det er satt opp er helt umulig)? Er det ikke bedre med flere instanser av klassen og la disse innstillingene bli satt i constructor i stedet? Ja, og hva i alle dager er forresten poenget med å ha den SQL-klassen når du uansett ser ut til å bruke PDO? Hvorfor ikke bare bruke PDO? Hvor ligger fordelen i å ha det slik det er nå kontra å opprette PDO-objekter «selv» utenfor? Lenke til kommentar
Thomas. Skrevet 14. desember 2010 Del Skrevet 14. desember 2010 Hva er poenget med å returnere $this i alle de funksjonene? Det er iallfall ikke særlig pent. Dessuten, når har du behov for å endre host, brukernavn, passord og database midt inni eksekveringen (selv om det slik det er satt opp er helt umulig)? Nei må jo ikke det, men så på en tutorial: http://www.talkphp.c...d-chaining.html Er det ikke bedre med flere instanser av klassen og la disse innstillingene bli satt i constructor i stedet? Kan du gi et lite eksempel her? Noe ala denne metoden? http://www.phpriot.c...ith-spl-php-5/4 Ja, og hva i alle dager er forresten poenget med å ha den SQL-klassen når du uansett ser ut til å bruke PDO? Hvorfor ikke bare bruke PDO? Hvor ligger fordelen i å ha det slik det er nå kontra å opprette PDO-objekter «selv» utenfor? Nei, si det Er det ikke noen fordeler og benytte "singleton" med PDO? (vet at jeg ikke bruker det her) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå