Avatar billede rotco Juniormester
04. august 2010 - 16:40 Der er 6 kommentarer og
1 løsning

Mange små filer eller én stor?

Hey,

Jeg sidder egentlig her og tænker lidt.. Jeg er igang med et ret seriøst projekt, og jeg vil gerne det gøre det så nemt, let og overskueligt for mig selv.

Normalt når jeg laver et admin-panel til mine hjemmesider så laver jeg filer som eksempelvis hedder:

tilfojbillede.php
redigerbillede.php
sletbillede.php
tilfojnyhed.php
redigernyhed.php
sletnyhed.php

Etc. etc. i forstår pointen..

Jeg plejer at have RIGTIG mange af disse små filer og synes i grunden det er overskueligt nok, men jeg vil gerne vide hvad en eventuel fordel ville være ved at lave det hele i én stor fil der eksempelvis hedder funktioner.php.
Når jeg så skal ind i det er det bare links der hedder:

funktioner.php?funk=tilfojbillede
funktioner.php?funk=redigerbillede
etc. etc. etc.

Nogen idéer.. For en fil som den vil nok let kunne komme til at fylde en del KB.. For projektet er forholdsvis stort, og jeg vil gerne have at når man tilføjer et eventuelt billede, at det så ikke bliver forstyrret pga. størrelsen på filen.

Jeres tanker?

80 point fordi jeg skal bruge nogle hurtige svar :)
Avatar billede claes57 Ekspert
04. august 2010 - 16:52 #1
jeg kan bedst lide de små filer - så loader siden hurtigere på en dårlig linje. Men når billedfunktioner typisk hører samme, så ville jeg der lave en fil med funktioner, som så kaldes direkte (ikke med ?funk= - men med Tilfoej(filnavn, sted)
Avatar billede Slettet bruger
04. august 2010 - 21:31 #2
Jeps, bedst med mange små.
- meget lettere at debugge og versionsstyre osv
(og mindre risoko for katastrofale bommerter - det HELE er væk!)

Navngiv dem evt. med et fælles prefix - Så de ligger samlet i mappen:
ADM_tilfojbillede.php
ADM_redigerbillede.php
ADM_sletbillede.php
ADM_tilfojnyhed.php
ADM_redigernyhed.php
ADM_sletnyhed.php

Hvis der er meget "ens kode" i toppen af dem, som læg dét ud i separat fil og include det.
Avatar billede intenz Novice
05. august 2010 - 09:44 #3
Performancemæssigt har det ingen betydning (med mindre det er ekstremt store filer). Filerne bliver kun åbnet på serveren, og ikke sendt til klienten. Du skal kun gøre det for din egen overskuelighed af systemet.

Men jeg er enig med claes57. Jeg plejer at holde funktionalitet der hører sammen i samme fil. Og så kalde funktionerne der er behov for når der er behov for dem.

Og så lave URL's som:
index.php?type=image&action=new
index.php?type=image&action=edit
index.php?type=image&action=delete
osv.

Så kan du have en front controller der håndterer kaldet og sender det derhen hvor det skal være. Jeg syntes det er nemmere med object orienteret programmering, men det kan også være lidt mere langhåret hvis man ikke er vant til det.
En simpel udgave kunne se sådan ud (med funktioner, ikke OOP), du skal evt. lave noget mere validering af inputtet.

<?php
$type = $_GET['type'];
$action = $_GET['action'];

switch($type) {
  case 'image':
    include('image_functions.php');
    $funktionNavn = 'image_'.$action; // funktion vi kalder
    break;
  case 'nyhed':
    include('nyhed_functions.php');
    $funktionNavn = 'news_'.$action;
    break;
  default:
    $funktionNavn = false;
}

if ($funktionNavn) {
  // kald funktionen hvis den eksisterer
  if ( function_exists($funktionNavn) ) {
    call_user_func($funktionNavn);
  }
}
?>
Avatar billede intenz Novice
05. august 2010 - 09:54 #4
Hvis du ikke vil sidde og kode hele den grundlæggende arkitektur selv, kan du også være at bruge et framework. Så har du alt den grundlæggende funktionalitet med det samme, og den hjælper dig med at holde en god og overskuelig arkitektur. Der er dog en læringskurve du skal igennem, så du skal nok vurdere om du har lyst til at bruge tiden på det.

Der er en del alternativer, det mest ligetil er nok http://codeigniter.com/
Avatar billede ksoren Nybegynder
05. august 2010 - 19:04 #5
Skal der indbygges sikkerhed i intenz' kode, så skal man nok lave en liste over funktioner, som det er tilladt en bruger at kalde.
Avatar billede rotco Juniormester
21. november 2010 - 14:40 #6
Tak for alle jeres kommentarer - de som ønsker point kan lige komme med et svar - tak :-)
Avatar billede intenz Novice
21. november 2010 - 21:07 #7
Kommer et her
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