OOP-benadering voor websites: hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

UltimateWeapon

UltimateWeapon

04/02/2007 02:47:00
Quote Anchor link
Ik ben al een tijdje bezig met een website compleet om te zetten naar OOP maar ik zit vast, ik kan maar niet een onderscheid maken tussen waar ik nu eigelijk klassen voor moet schrijven, waar objecten voor, en waarvoor niet...

Ik heb een website met een hoofdmenu, een zijmenu en de inhoud in het midden

Hoe moet ik hier OOP op gaan toepassen?
a) Moet ik elke pagina als 1 object benaderen?
b) Moet ik elk item van de website als 1 object benaderen? en deze objecten oproepen op de paginas?

Ik heb voorlopig voor methode B gekozen maar ik kom in situaties terecht dat methode A precies weer beter lijkt, maar als ik puur methode A gebruik, dan heb ik methode B weer nodig

Moet ik dan een mix maken? maar dan word het al een hele soep vind ik

Hopelijk kan iemand mij wat tips geven hoe ik dit nu eigenlijk moet aanpakken want ik zie door het bos de bomen niet meer, zoals ze dat zeggen
Gewijzigd op 01/01/1970 01:00:00 door UltimateWeapon
 
PHP hulp

PHP hulp

22/12/2024 09:51:44
 
Jelmer -

Jelmer -

04/02/2007 09:43:00
Quote Anchor link
Je kan er een mix van maken.

Er is geen manier van zo moet het in PHP, aangezien PHP zowel redelijk overweg kan met procedure als OO programmeren. Het is dus nu puur wat jijzelf handig vind. Dat is al helemaal het geval aangezien je niet voor anderen programmeert, maar voor jezelf. Dus doe wat jij handig vind.

Maar ik zou inderdaad voor beiden gaan. Een pagina bevat dan weer meerdere pagina-objecten. Ik weet dan weer niet precies wat je bedoelt met 'pagina' en 'pagina objecten'. Bedoel je de tekst & inhoud van de pagina, of dynamische elementen zoals polls, grafiekjes, gastenboeken, shoutboxen etc? Want die dynamische dingen lenen zich prima voor objecten. Tekst uiteraard niet, want wat zijn de voordelen die je behaalt door dat in een klasse te zetten...

Ik zou het heel simpel houden:
- In je database/tekstbestanden staan pagina's, iedere pagina een aparte regel/bestand/whatever
- Iedere pagina wordt gerepresenteerd door een object waarmee je de pagina kan weergeven/beïnvloeden.
- Je menu slikt een array van die objecten, en kan daarmee een menu genereren.
- Je pagina's bestaan uit objecten, namelijk 'elementen' om ze zo maar even te noemen. Dezen bevatten de dynamische onderdelen en de tekst-elementen die weer apart in je database staan. Zo kan je dezelfde tekst of elementen terug laten komen op meerdere pagina's, omdat ze als het ware los van de pagina staan.
- Je menu is ook zo'n element, net als je gastenboek en je bezoekersteller.

Maar nu zit in de knoop met 1 ding: Je maakt een webpagina? In de zin van een statisch ding met info erop die af en toe vernieuwd wordt? Want in dat geval ben je helaas niet handig bezig. PHP uberhaupt is eigenlijk alleen handig voor dynamische pagina's. Dingen die veranderd moeten worden zonder een ftp-programma te openen. In het geval van een standaard website is dus eigenlijk alleen het CMS geschreven in PHP. De website zelf staat gewoon in losse onderdelen in de database. Dus wat maak je nu? Een CMS of een webpagina?
 
UltimateWeapon

UltimateWeapon

04/02/2007 16:29:00
Quote Anchor link
ik maak zowel een CMS als webpagina

eerst dus een webpagina maar zoveel mogelijk met objecten (achteraf zet ik hier nog een CMS op )

ik ben nu voorlopig als volgt bezig:

op bijvoorbeeld de pagina voertuigen.php zet ik:

$objPage = new Pagevoertuigen();
Layout::showCompletePage($objPage);

waarbij de klasse Pagevoertuigen gevuld is met:

var $objVoertuig;
var $objSubmenu;
function Pagevoertuigen;
function ToonInhoud();
function ToonVoertuig();
function ToonStart(); ( = als er geen voertuig geselecteerd is )
function ToonSubmenu();

als ik nog dieper ga namelijk bij $objVoertuig en $objSubmenu dan kom ik in serieuzere objecten terecht met hun properties, bij een voertuig is dat (merk, jaar, tankinhoud, pomp) waar ik dan later functies als edit() en add() wil gaan toevoegen vor het CMS




het is mijn allereerste website waar ik OOP bij gebruik dus het is echt zoeken maar ik hoop dat ik al dichter begin te komen bij goede code :-)
Gewijzigd op 01/01/1970 01:00:00 door UltimateWeapon
 
Arend a

Arend a

04/02/2007 17:36:00
Quote Anchor link
Ik gebruik zelf een object orientated manier puur met functies (zonder objecten), maar devertaling naar object orientated is niet zo groot.

[1] er is een aparte file met printpage(); hier worden de pagina's gerpint, de mysql connectie gemaakt, en alle afhandelingen.

[2] De xxx.php waarin een array staat met de mogelijke functies voor xxx.php?action=... met een referentie naar de functies.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
$acties
= array();
$acties['def'] =& start();
$acties['add'] =& add();
$acties['del'] =& del();
$acties['start'] =& start();

printpage();


function
start {
$hello = "Hello world";
$returnarray = array();
$returnarray (
inhoud => $hello,
titel => "Hello word",
login => 1,
css => "test.css"
);
return $returnarra;
}


//etc.

?>


[3] printpage roept de pagina op die van belang is aan de hand van $_GET['action'] variabele, en voert de functie uit die nodig is. De functie returned de inhoud, printpage bouwt de pagina voor de rest op (bijvoorbeeld de zijbalken, trackers, etcetera.) En houd ook dingen als sessies bij. Practisch alles wat voor elke pagina het zelfde is wordt door printpage
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.