05. februar 2003 - 17:02Der er
9 kommentarer og 1 løsning
OOP (omkring class extends)
Hejsa :)
Jeg har lavet et lille cms system, det er lavet i en class så det er lettest at genbruge og rette senere, men nok om det. Jeg includer min class i min fil og laver et objekt af den i en session.
Jeg vil gerne have core systemet i en fil og resten, nyheds system mv. i en anden som jeg så også includer. Det ville jeg lave via class extend, men hvis jeg laver "News" extende "Cms" så skal jeg jo lave et nyt objekt af "News", og ikke "Cms", som jeg gerne ville, da det ville gør min kode meget lettere at vedligeholde.
Er der nogen der har nogen forslag til hvordan det kunne løses?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
ja ... dit sprøgsmål giver faktisk ikke rigtigt mening. enten er det fordi du ikke ved hvad du spørger om, eller også formulerer du dig ikke klart. hvis det er det sidste, så prøv igen :)
Da jeg nok ikke ved til fulde hvad oop helt går ud på, eller ihvertfald ikke er sikker på det vil jeg lige læse det doc der, og komme tilbage of omformulere mig :)
Vidste mer eller mindre alt hvad der blev beskrevet i det doc....Men kan være jeg ikke har designet min kode ordenligt, det er så en helt anden side af sagen :)
Det er lidt svært at forklare via kode, men forestil jer at jeg har cms.class.php hvor der ligger nogle funktioner der får det hele til at køre rundt, den bliver så includet i toppen af index.php, i index.php starter jeg så min cms class op i en session, vha. $_SESSION['Cms'] = new Cms;
Men jeg vil så have nogle moduler, f.eks. nyheder el. login, dem vil jeg ligge i andre filer, men stadig køre det sammen til en stor class, så jeg kan referrer til nogle af funktionerne fra cms.class.php i f.eks. news.class.php
Håber i forstår det lidt bedre nu :) og hvis selve min opbygning er helt hen i vejret, hvilket jeg selfølgeligt ikke selv syntes, så må i meget gerne give råd :)
miraculix, fordi jeg har nogle config osv, der skal gå rundt på alle sider, configs der kun ændrer sig engang imellem, sprog osv. derfor indlæser jeg det kun 1 gang pr. session, så slipper den for at bruge unødige kræfter + at det er smart når jeg får bygget en webshop ind i det, da indkøbskurven kan gemmes i et array i sessionen.
darkstar, hvad mener du præcist med at de ikke nedarver fra min eksiterende klasse?
Lad mig tage tingene i den rækkefølge, som de står ovenfor...
Du har svaret til Miraculix at du har nogle konfigurationsvariable, som skal følge med rundt. Den slags er det en god idé at anbringe i en separat klasse. Hvis du vil lave et helt CMS og kun bruger een klasse, så bruger du slet ikke OO-tankegang endnu. Du får brug for *mange* klasser.
Hvad angår det med at arve - hvis du har alle dine konfigurationsvariable i een klasse, er det mest oplagt kun at have een instans af den klasse for hver brugersession. Så giver det ikke meget mening at lade en anden klasse arve (extende) den klasse, da den så også vil have faciliteter til at opbevare konfigurationsdata. Det er noget skidt.
Derfor: lav flere, uafhængige klasser og nogle stykker som måske er i familie - så at sige.
Jeg tror at det ville være en god idé hvis du læste lidt mere om OO. Der er masser af gode bøger om emnet. Køb en elelr tag på biblioteket og lån en der. Du kan ikke lære principperne om OOP alene ved at spørge her på Eksperten. Det kræver noget (men ikke meget) teori.
Ahh, tak, nu ved jeg lige præcist hvordan det skal laves :)
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.