Avatar billede doeleman Nybegynder
15. oktober 2000 - 16:10 Der er 4 kommentarer og
2 løsninger

Smart Architectures in PHP

Er der nogen som har læst artiklen på http://www.phpbuilder.com/columns/tim20001010.php3 om at adskille kode og præsentation.

Jeg synes dog, at artiklen kommer lige lovlig let omkring nogle af de lidt mere avancerede ting.

Hvordan adskiller jeg f.eks. kode og præsentation når jeg kører en sql-select, der skal skrives til en tabel.

Følgende kode er bare et eksempel:
<?php
$sql = \"SELECT id, title FROM table LIMIT 20\";
$result = mysql_query($sql) or die(mysql_error());
$total = mysql_num_rows($result); // tæl antal poster i forespørgelsen

if ($total <= 0) {
    print \"No results retrived from database\";
} else {
    print \"<table>\";

    while($row = mysql_fetch_array($result)) {
        $id = $row[\'id\'];
        $title = $row[\'title\'];
        print \"<tr><td>$id</td><td>$title</td></tr>\\n\";
    }

    print \"</table>\";
}
?>


Håber vi kan starte en diskution om god programmerings skik.
Avatar billede steffen Nybegynder
15. oktober 2000 - 18:02 #1
Hmm lytter lige med. Har lige set det gjort smart i enHydra - men det er jo noget med en \"dummy-række\" i præsentationen, som findes, slettes og genoprettes med de rigtige værdier og nye rækker i koden.

Men hvordan man gør det i PHP uden om XML, el. lign kan jeg ikke lige gennemskue.
Avatar billede eaglewing Nybegynder
15. oktober 2000 - 22:15 #2
Jeg plejer at have nogle funktioner til at lave selve outputtet. For at få dem adskildt fra selve koden. Men meget bedre er det jo ikke.

Alternativt kunne man vel have en php fil med selve \"intelligensen\", og så kunne de kalde de filer som laver output.
Avatar billede hein Nybegynder
16. oktober 2000 - 15:59 #3
Kode og præsentation kan adskildes let og faktisk ret elegant med FastTemplate eller EasyTemplate.

Problemet med den er bare at det kan være lidt indviklet st sætte sig ind i, men når det først begynder at synke ind (og man har rettet fejlen i class.FastTemplate filen:-) ser man rimeligt hurtigt lyset. Jeg kan anbefale den nye PHP bog [Web Application Delelopment with PHP 4.0 af Till Gerken m.f]
som benytter EasyTemplate til flere af deres eksempler. Og den er meget bedre end Professional programming with PHP, som skriver lidt om FastTemplate.

Jeg kan også sende et lille eksempel med FastTemplate og udtræk fra MySQL.
Avatar billede doeleman Nybegynder
16. oktober 2000 - 21:17 #4
Jeg har læst lidt om FastTemplate og EasyTemplate men er ret sikker på, at det vil være overkill i den pågældende situation. Desuden er jeg ikke så glad for OO-programmering.

Jeg har dog læst lidt i Web Application Development, men er dog ikke helt tilfreds. F.eks. læste jeg \"An API Design Example\" i kapitel 1, der netop diskutere denne problematik. Jeg synes f.eks. ikke at deres pseudokode er så pædagogisk.

Hvordan skal eksemplet med calendar_get_event_list forståes?
function calendar_get_event_list($range) {
  // retrive event list
}

$event_list = calendar_get_event_list($required_range);
for($i = 0; $i < count($event_list); $i++)
  print(\"Event at $event_list[$i][\"timestamp\"]: $event_list[$i][\"description\"]<br>\");


Så vidt jeg kan se, indeholder koden flere fejl og et real-life eksempel vil aldrig blive lige så pænt.
Avatar billede hein Nybegynder
17. oktober 2000 - 08:47 #5
Du har helt ret i at FastTemplate kun egner sig til størrer systemer/sider (og at der er et par fejl i ovenstående eksempel).
Avatar billede doeleman Nybegynder
19. oktober 2000 - 10:16 #6
Det ser ud til at aktiviteten i dette spørgsmål er stoppet.

Der kom ikke så meget frem, jeg kunne bruge, men hein skal da have lidt points for hans indsats.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester