15. november 2005 - 12:26Der er
16 kommentarer og 1 løsning
Well-designed PHP Applications
Hej eksperter.
Jeg søger materiale (gerne online, gratis) om, hvordan man designer og strukturerer PHP applikationer bedst muligt - specielt med henblik på Objekt Orienteret programmering og separering af layout fra det egentlige system.
Jeg skal til at bygge et nyt CMS, og en virksomhed har vist interesse for mit arbejde. Jeg ønsker derfor at lave systemet i henhold til eventuelle standarder.
Kender I til materiale der kunne være relevant? det være sig online materiale, tutorials, bøger osv.
Hvis det har nogen relevans, så har jeg i sinde at udvikle systemet i PHP5 og MySQL4.1.
Jeg er ikke interesseret i "kig på andre CMS-systemer"-svar. Jeg er interesseret i de korrekte måder at programmere på, og materiale hertil.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
- Med henblik på at skille layout fra kerne-systemet, så ligger det selvfølgelig også op til, hvordan man skaber sider baseret på templates (hvis det da er den korrekte måde at gøre det på :)
Jeg ville lave en masse fuktioner, og så sørge for at samle alle mysql kald. Derved får du en hurtig, og effektiv kerne, ved at have mindst muligt kode, og stadigvæk sørge for at det ikke bliver en alt for langsom kode. Husk, det er altid vigtigt at lægge alle mysql kald i toppen, det hjælper MEGET! Du kan godt spare et sek, og det er jo meget i dette sammenhæng :)
wakko; kortere kode er bestemt ikke altid enstydigt med hurtigere generering af side :)
webcreator; jeg ville personligt nok køre alt i klasser, som for det meste returnerer true / false. desuden ville den smarteste måde at dele layout fra selve siderne nok være at oprette ialt to funktioner i en layout fil (top() & bund()), og så køre dette i hver enkel fil.
<?php /* Include layout */ include_once $_SERVER['DOCUMENT_ROOT'] . "/layout.php";
Hvis man skulle bruge GET skulle man gøre som jeg også selv har brugt, at man laver et directory til filerne, og inkluderer dem derfra: <?PHP include("files/".$_GET['page'].".php"); ?>
Nu er jeg ikke PHP kyndig men de samme principper som gælder i andre sprog gælder sikkert også for PHP.
- opdeling i lag (klassisk: præsentation, forretnings logik, data tilgang) - OO A & D - OOP implmentation (PHP classes) - brug af design patterns - skarp adskillelse af layout og kode (ideelt set har man kun filer med HTML tags og filer med kode, men ingen filer med begge - og selvom man ikke kan nå idealet, så kan man komme et langt stykke) - al styre system og database specifik kode skal encapsulates så det er nemt at skifte
PEAR er så vidt jeg ved ikke lige populære i alle PHP kredse, men uden at ligge hovedet på blokken for at de er en god implemtation, så har de forholdt sig til mange vigtige problemer, så selvom du ikke vil bruge PEAR, så mener jeg at du kan lære af at kigge på det
Mange tak for jeres input. Det er imidlertid kun Arnes input jeg kan bruge. Det var helt specifikt svar omkring struktur og patterns jeg var interesseret i.
Jeg havde dog håbet på nogle links eller eksempler - for OO A og D samt OOP er jeg allerede bekendt med. Det er specielt med henblik på at adskille design og logik/model. Jeg har set eksempler på hvordan man kan bygge templates, hvori man fx skriver {menu}, og så indsættes menuen dér. Men der er sikkert en masse tanker omkring opbygningen af menuen - for den skal jo også kunne redigeres.
Jeg har selv nogle gange brugt det, altså at man lavede en ren HTML template, og så inkluderede de enkelte filer fra et særskilt directory ;)
<html> <?PHP include 'filer/menu.php; ?> <mere html> <?PHP include $_GET['p']; ?> </html>
Der skal selvfølgelig tilføjes en masse checks, der chekker om tingende er gyldige. Du kan også lave en seperat fil, som du putter funktioner i, og sp inckludere "fuctions.php" el. lign. I starten. Det er det jeg oftest bruger ;)
Nu da du skriver du bygger et CMS, kan du på den måde også med fordel sætte CMS'et til at redigere direkte i mappen "filer". Det har jeg gjort på det CMS jeg har lavet.
De udvider PHP5, med alt der der mangler for at det er et ordentligt OO sprog. Når PHP5 er stabilt, har de lovet en lille hjælpeguide til det.
Synes godt om
Ny brugerNybegynder
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.