Jonas Skrevet 19. juli 2009 Del Skrevet 19. juli 2009 (endret) Mitt tips: Gi faen i Smarty. Brukt det selv til et par større prosjekter, og det gir virkelig bare masse begrensninger. Språket oversettes til PHP, noe som betyr at du vil aldri kunne gjøre noe mer enn du kan i PHP; heller mye mindre. Jeg mener også at 11.500 linjer med kode er way overkill for noe som jeg nå i bunn og grunn gjør med bare ni og rene PHP template-filer. $functions = glob ( WORKING_DIRECTORY . '/includes/presenter/functions/*' ); foreach ( $functions as $function ) require_once ( $function ); foreach ( $this -> module -> getData () as $var => $val ) ${$var} = $val; require_once ( WORKING_DIRECTORY . '/tpl/default/templates/page.php' ); <?php if ( $error ) : ?> <p class="error"><?= $error ?></p> <?php elseif ( $success ) : ?> <p class="success"><?= $success ?></p> <?php elseif ( $notice ) : ?> <p class="notice"><?= $notice ?></p> <?php endif; ?> <form method="get" action="index.php" class="frame_form"> <p class="input"> <label for="check_ticket">BillettID</label> <input type="text" name="ticketId" id="check_ticket"> </p> <p class="submit"> <input type="submit" name="submit" class="submit" value="Sjekk inn" /> <input type="submit" name="cancel" class="cancel" value="Avbryt" /> </p> <input type="hidden" name="canvas" value="admin" /> <input type="hidden" name="event" value="check" /> <input type="hidden" name="session" value="<?= htmlentities ( $_GET['session'] ) ?>" /> </form> <script type="text/javascript"> $(function(){ $('#check_ticket').focus(); }); </script> <table> <tr> <th>Id</th> <th>Navn</th> <th>Brukernavn</th> <th>E-mail</th> <th>Innsjekk</th> </tr> <?php if ( is_array ( $participants ) && count ( $participants ) > 0 ) : ?> <?php foreach ( $participants as $participant ) : ?> <tr> <td><?= $participant['ticketId']; ?></td> <td><?= $participant['realname']; ?></td> <td><?= $participant['username']; ?></td> <td><?= $participant['email']; ?></td> <td>[ <a href="index.php?canvas=admin&event=check&ticketId=<?= $participant['ticketId']; ?>&session=<?= htmlentities ( $_GET['session'] ) ?>"><?= ( $ticketstatus[$participant['ticketId']] ? '<img src="/system/images/icons/tick.png" /> Sjekket inn' : '<img src="/system/images/icons/cross.png" /> <strong>Ikke</strong> sjekket inn' ) ?></a> ]</td> </tr> <?php endforeach; ?> <?php else : ?> <tr> <td colspan="4" class="msg">Det finnes ingen deltakere til dette arrangementet.</td> </tr> <?php endif; ?> </table> Endret 19. juli 2009 av Jonas Lenke til kommentar
LoS Skrevet 4. august 2009 Del Skrevet 4. august 2009 Apropo templates. Noen som ser noen grunn til å ikke printe templates i __destruct? Lenke til kommentar
qualbeen Skrevet 8. august 2009 Del Skrevet 8. august 2009 Tja, husker jeg outputtet en god del html i __destruct() selv. Fungerte fjell det! :-) ... helt til en dag jeg skulle gjøre litt større utvidelser; den klassen jeg arbeidet med ble nå kalt opp av en annen klasse som hadde en god del output den óg. Html'n fra den gamle koden skulle fortsatt brukes, men nå ble rekkefølgen feil. Så dermed måtte jeg flytte en god del utskrift fra __desctruct() ut i en funksjon, og benytte den ifra den nye klassen. På bakgrunn av det, pleier jeg ikke å gjøre så mye utskrifter i __destruct() lengre. Ei heller så mye logikk blir utført der. Men utover det, ser jeg ikke store problemer. Det hele grunner vel ned til hva som er mest hensiktsmessig for deg, og hvor store problemer det eventuelt måtte medføre for ettertiden. Lenke til kommentar
qualbeen Skrevet 24. september 2009 Del Skrevet 24. september 2009 Var det ikke slik at det skulle komme en forenklet bruk av "$var = $x ? $x : $y" i php 5.3? Eller husker jeg helt feil? Noen som forstår hva jeg mener? Lenke til kommentar
Jonas Skrevet 24. september 2009 Del Skrevet 24. september 2009 Det har kommet. Ta en kikk her. Lenke til kommentar
qualbeen Skrevet 24. september 2009 Del Skrevet 24. september 2009 Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise. Sweet Lenke til kommentar
Milktea Skrevet 9. januar 2010 Del Skrevet 9. januar 2010 Noen som kan forklare meg logikken? "string" == false // false "string" == true // true "string" == 0 // true 0 == false // true 0 == true // false true == false // false Lenke til kommentar
Ernie Skrevet 9. januar 2010 Del Skrevet 9. januar 2010 (endret) Noen som kan forklare meg logikken? "string" == false // false "string" == true // true Uannsett hva man sammenligner med en bool blir uttrykket evaluert som boolsk. "string" blir dermed true (hadde blitt false hvis den var tom eller "0"), og resultatet bør ikke overraske noen da (true == false gir false / true == true gir true). "string" == 0 // true Denne er sær, men greia er at dette evauleres som heltall. Det vil altså si at man egentlig får 0 == 0 siden "string" blir konvertert til et tall. Verdt å merke seg at "234foo" == 234 utrolig nok gir true pga. konverteringen. 0 == false // true0 == true // false Igjen, evalueres som boolsk. 0 er eneste tallverdi som gir false, og man får dermed false == false. true == false // falseDenne er vel den eneste man ser direkte uten forkunnskaper. Moralen? Bruk === hvis det skal være helt likt det du sammenligner mot. Ellers står det litt om sammenligninger her og her. Endret 9. januar 2010 av Ernie Lenke til kommentar
Jonas Skrevet 9. januar 2010 Del Skrevet 9. januar 2010 (endret) Hvis en string, ved sammenlikning med en integer, ikke starter selv med et tall, så castes verdier til integer blir automatisk lik 0. Ellers er det verdt å nevne at å sammenlikne forskjellige datatyper kan gi ganske rare resultater og det er egentlig mye bedre om man finner en annen måte å gjøre det på. Edit: Hurtigsvar var ikke så hurtig likevel. Endret 9. januar 2010 av Jonas Lenke til kommentar
Milktea Skrevet 10. januar 2010 Del Skrevet 10. januar 2010 Takker for svar, PHP gjør meg alt for sløv med datatyper. Ser ut til at jeg kan ha godt av å bruke === litt mer. Lenke til kommentar
G2Petter Skrevet 10. mars 2010 Del Skrevet 10. mars 2010 Hvilke programmer bruker dere til utvikling? Til nå har jeg brukt Notepad++ og lastet opp filer manuelt med et FTP-program, men det er litt tullete i lengden. Er det noen som har noen bedre tips til å øke produktiviteten? Lenke til kommentar
Jonas Skrevet 10. mars 2010 Del Skrevet 10. mars 2010 Du kan jo begynne med å utvikle lokalt. Hater å anbefale følgende til noen, fordi det duger omtrent ikke til en dritt, men ta en titt på xampp. Hvis du vil ha et skikkelig utviklingsmiljø, så vil jeg påstå at du må over til linux. Og helst vike vekk fra PHP. Selv har jeg forelsket meg i Rails med autospec og cucumbertesting. Lenke til kommentar
Alex Moran Skrevet 10. mars 2010 Del Skrevet 10. mars 2010 Du kan ta en titt på Capistrano for å deploye prosjektene dine. Skrevet i Ruby, men funker like godt for PHP. Sammen med et anstendig versjonskontrollsystem (Git) er dette win. Lenke til kommentar
danweb.cjb.net Skrevet 13. mai 2010 Del Skrevet 13. mai 2010 (endret) Tenkte å dele min erfaring med opplasting til database(Mysql og php) ved bruk av <form enctype="multipart/form-data">. Jeg slet utrolig lenge med å få skjema til å fungere (jeg bruker OS X og Safari), de fleste gangene man prøvde å laste opp noe, startet safari å jobbe (loade), men kom seg ingen vei, derfor gikk det heller ikke kun å kjøre en sjekk på serversiden for å sjekke om filen ble lastet opp eller ikke. Man måtte reloade siden, eller gå tilbake får i det hele tatt å komme seg noen vei i browseren. Det denne fiksen gjør er å fikse dette, slik at Safari alltid laster opp til serveren, og der bør selvfølgelig en ekstra sjekk gjøres for å sjekke om det ble lastet opp en fil eller ikke. Løsningen på problemet var et lite javascript: <html> <head> <script type="text/javascript"> //<![CDATA[ function safariCheck(f){ if (/AppleWebKit|MSIE/.test(navigator.userAgent)) { new Ajax.Request("/js/close", { asynchronous:false }); } return true; } // ]]> </script> </head <body> <form action="..." method="post" enctype="multipart/form-data" onsubmit="return safariCheck(this);"> ... .. </form> </body> </html> Håper dette kan hjelpe noen å slippe mange timers frustrasjon! EDIT 1: Lagt litt mer utfyllende info om hvorfor denne bug-fiksen trengs i Safari. Endret 13. mai 2010 av danweb.cjb.net Lenke til kommentar
Alex Moran Skrevet 13. mai 2010 Del Skrevet 13. mai 2010 Hva med å sjekke om filen faktisk blir lastet opp på serversiden? Lenke til kommentar
danweb.cjb.net Skrevet 13. mai 2010 Del Skrevet 13. mai 2010 Hva med å sjekke om filen faktisk blir lastet opp på serversiden? Jeg gjør selvfølgelig en sjekk der også. Problemet var at Safari hengte seg opp, og bare sto å loada. Man kom seg ingen vei, hvis man ikke reloadet siden, eller gikk tilbake. Det er det den lille kodesnutten ordner opp i, i tillegg til at fila alltid går til serveren. Skulle vært litt klarer i posten, ser den. Lenke til kommentar
tickinghd Skrevet 15. mai 2010 Del Skrevet 15. mai 2010 (endret) Hvilke programmer bruker dere til utvikling? Til nå har jeg brukt Notepad++ og lastet opp filer manuelt med et FTP-program, men det er litt tullete i lengden. Er det noen som har noen bedre tips til å øke produktiviteten? Ja, det er litt tullete. Som andre nevner bør du iallefall ha en apache/php server kjørende lokalt slik at det blir enklere å teste endringene før du laster opp til serveren. Neste steg er å finne en bra IDE, og aller helst en debugger også. Mange profesjonelle bruker Zend Studio og Zend sin debugger, alternativt kan man bruke gratisalternativet Eclipse PDT. Personlig foretrekker jeg NetBeans IDE og Xdebug debugger som er gratis og som fungerer like bra som Zend Studio. Og ja, Linux er som regel greiest for PHP-utvikling siden server og utviklingsmiljøet ligner mer på hverandre. Men det er mange kombinasjoner av verktøy og plattformer å velge mellom for å skrive PHP-kode. Man kommer langt med ett godt tekstprogram og XAMPP (windows) / MAMP (mac). Edit: Og ja, ett versjonkontrollsystem er vinn vinn når du kommer så langt. Alle er ivrige for å foreslå GIT i disse dager, men er du ikke på det nivået at det gjør så stor forskjell enda kan du f.eks. bruke Dropbox som ett ikke-plag-meg-med-dumme-detaljer-la-meg-jobbe-ifred alternativ. Dropbox lagrer flere versjoner av filene og du kan dele arbeidet ditt med andre. Endret 15. mai 2010 av tickinghd Lenke til kommentar
salah Skrevet 24. mai 2010 Del Skrevet 24. mai 2010 Jeg mener at jeg kan veldig mye innen PHP, men jeg vet jeg mangler veldig mye innen objektorientering, regex og diverse andre avanserte kapitler. Har noen ei god bok å anbefale? Lenke til kommentar
Crowly Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 Tror PHP Cookbook skal være bra. Lenke til kommentar
Ueland Skrevet 28. oktober 2010 Del Skrevet 28. oktober 2010 Har blitt stille her Tenkte jeg skulle vurdere å dra opp igjen Vikingboard fra de døde, men jaggu har ikke en pornohai tatt domenet. Jaja, får vurdere nytt navn da. 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å