[PHP] Pakket overzichtelijk maken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik ben met een pakket bezig met aardig wat bestanden. Nu ben ik bestanden die ik kan combineren, al aan het combineren.

Nu heb ik veel functies die over 2/3 php bestanden uitgesmeerd zijn. Om de "Root" van mijn pakket overzichtelijk te houden dacht ik dat het misschien makkelijk was om bepaalde functies, bijvoorbeeld om een afdeling toe te voegen, in mappen te zetten. Zoiets als "Add_Afdeling" etc..

Bij GOT is het toch ook zo dat bestanden in mappen staan? Is het verstandig om dit zo te doen?

Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

De paden die je in je URL balk ziet bij GOT zijn geen paden naar mappen. Zoek eens op multiviews als je wilt weten hoe dit werkt.

Verder stop ik elke functionaliteit in een apart bestand. Als je echt overzichtelijk bezig wilt zijn ga je werken met classes maar dit vereist een heel andere manier van werken dan wanneer je werkt met losse functies. Een optie is dan ook om alle functies die met elkaar te maken hebben in 1 bestand te zetten. Aparte mappen maken lijk me niet perse bevorderlijk voor het overzicht tenzij je heel veel php files hebt.

[ Voor 91% gewijzigd door Brakkie op 03-09-2004 17:45 ]

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Hmm ja. Ik heb niet echt "Functies" ik heb meer wat losse files die een specifieke taak uitvoeren en vaak ook niet vaker dan 1 keer (alleen als je op het betreffence menu item klikt) Bv Afdeling toevoegen. Alles wat nodig is om dat te doen staat in een aantal bestanden daar voor.

Misschien niet zo'n goede manier van werken maar dit is het eerste wat grotere pakket wat ik maak in PHP. Dus ik heb nog wel wat te leren daar in :)

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

React is zover asl ik begrepen heb volledig OOP (iig php4 like). De classes zitten in file of zijn gecombineerd in bepaalde files. Daarnaats in React behoorlijk gemaakt voor preformance. Dus al met al is eht een geheel ander opzet en ook absoluut niet te vergelijken.

Ik zelf zit er aan te denken om met classes te gaan werken maar heb me er absoluut nog niet in verdiept. Zeker als je veel bestanden hebt is het een goede methode om directory's aan te maken voor bijvoorbeeld includes (config file, global functions enz) en modules. Eventueel kan je dan per module weer een subdirectory maken maar dat zou ik niet aanraden.

BTW op de site van react staat ook nog een image van de dir tree dan heb je en beetje idee hoe het werkt. Die mooie URL's maak je met multiviews of mod_rewrite. Afhankelijk van je wensen en eisen.

Maar wat versta je eigenlijk onder een groter pakket? De compleiteit en afhankelijkheden kunnen zelfs een klein pakket zeer ingewikkeld maken en omgekeerd. ;)

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
nou groot in de zin van veel bestanden, complex is het niet, veel query werk. Kan dus best in subdirectory's de boel indelen.

Performance is geen must voor het pakket wat ik maak.

Acties:
  • 0 Henk 'm!

Verwijderd

ViNyL schreef op 03 september 2004 @ 18:28:
Performance is geen must voor het pakket wat ik maak.
Maar natuurlijk wil je de server zo min mogelijk belasten, is altijd beter.

Ik heb zelf altijd de volgende opbouw als ik een website maak:
code:
1
2
3
4
5
6
7
8
/www.site.com/htdocs
    includes
    images
    templates
  index.php
  other_file.php

  bla.php

Hierbij kan je globale bestanden (overal op iedere pagina nodig) verwachten in de includes. Images van Scripts in images/content/news/$news_id/.
Templates in de template directory, met een bijbehorende templateparser.

Dit zijn ongeveer de bestandstypes die ik in de includes dir neerzet, hiervoor hanteer ik de volgende filename opbouw: type_function.php

Denk hierbij aan de volgende bestandsnamen:
incl.config.php (configuratiebestand, mysql user/pw, etc)
incl.main.php (hoofdbestand met veel gebruikte functies die eigenlijk nergens anders thuishoren)
class.template.php (template engine)
class.mysql.php (mysql class, extra security, counters, etc)
func.get.php (functies die waardes van de gebruiker verwerken (os/browser bv).

Ik werk zelf met mod_rewrite om mijn url's te rewriten binnen de meeste scripts die ik gemaakt heb, dit vanwegen het gemak dat je hebt (multiviews is niet zo dynamisch).

Mijn standaard bestandsopbouw heb ik als het volgende
code:
1
2
3
4
5
6
7
8
includes (in lagen *)

start alles ($user = new UserSystem() en functies als dat)

if ($action=='edit') { .. }
elseif ($action=='view') { .. }
else { .. }
show html


/me Laag 1 is de core van je site, als functies en classen elkaar nodig hebben dan gaat de class/functie die iets nodig heeft van een andere class/functie een laag hoger. De hoogste laag is de aanroep laag.

Ook vind ik het makkelijk om een vaste waarde te hebben waar ik de html in kan opslaan ipv het direct te echo'en, dus ongeveer het volgende
PHP:
1
2
3
4
5
6
7
8
9
//includes etc
$html_out = '';
//more to do
$html_out .= '<table><tr><td>blaat</td></tr></table>';
//some cases, ifs and more
$html_out .= 'haha<hr>';

//de ShowHTML
echo $html_out;


Eigenlijk moet je (zoals in mijn 1e voorbeeld code) de functies (edit, view, etc) in lossen bestanden neerzetten, dit doe ik zelf nooit want ik vind het een beetje overdreven. Ik hou wel tussen de if's (elseif, else) altijd een regel of 20 witruimte. Zodat ik makkelijk kan zien waar een functie start/stopt.

Ik hoop dat er wat zinnige info uit te halen is, en ook dat het te begrijpen is, niet echt een geweldige tekst opbouw (erg moe).

Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Wow, nou ik moet zeggen dat ik het een erg goeie post vindt en ik er veel aan heb. Erg bedankt voor je uitleg!

Ik weet zeker dat jij al veel verder bent met mij als ontwikkelen in PHP en zal het zo goed mogelijk proberen toe te passen.

Ik weet niet of dat allemaal al kan binnen het huidige pakket wat ik aan het schrijven ben, maar ik leer er zeker weer wat van.

[ Voor 55% gewijzigd door ViNyL op 03-09-2004 20:06 ]

Pagina: 1