oo site opbouwen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Emmanuel Delay

Emmanuel Delay

13/09/2007 15:56:00
Quote Anchor link
Hey,

Ik weet hoe ik classes kan maken en gebruiken en het werkt allemaal zoals ik wil.

Mijn vraag is: hoe bouw je op een interessante manier een OO site op?

Is zo-iets bv. interessant, qua structuur?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
// index.php
require_once "pagina.php";
require_once "body.php";
$Body -> echo_pagina ($Pagina);
?>



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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?
// pagina.php
class Cpagina
{
    
    public $pagina;
    public $jaar;
    public $menu;
    public $main;
    public $titel;
    
    
    public function __construct( )
   {

        
    $local_pagina = $_GET['pagina'] ;
    $local_jaar = $_GET['jaar'] ;
    $this -> titel = 'OOP site';
    
    
    include ('menu.php');
    $this -> menu = $menu;
    
    
    switch ($local_pagina)
        {
        case
'foto' :
            $this->pagina = 'foto.php';
            include ('foto.php');
            $this -> titel = $this -> titel .' - Foto&#39;s ';
            $this -> main = $main;
            break;
        case
'contact' :
            $this->pagina = 'contact.php';
            include ('contact.php');
            $this -> titel = $this -> titel .' - Contact ';
            $this -> main = $main;
            break;
        default :

            $this->pagina = 'main.php';
            $this -> main = 'test main';
            break;
        }
    
    
      
   }

}


$Pagina = new Cpagina;

?>



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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?
// body.php
class Cbody
{
public $hoofding;
public $midden;
public $voet;

public function __construct( )
    {
    
    }

    
public function echo_pagina (Cpagina $Pagina)
    {

    
    $this -> hoofding =
    '
    <html>
    <head>
    <title>'
. $Pagina -> titel .'</title>
    <LINK REL=stylesheet HREF="style.css" TYPE="text/css">
    </HEAD>
    <BODY>
    <div class="menu" border="1">
    '
;
    
    $this -> midden=
    '
    </div>
    <div class="main">
    '
;
    
    $this -> voet=
    '
    </div>
    </body>
    </html>
    '
;    
    
    echo $this -> hoofding;
    echo $Pagina -> menu;
    echo $this -> midden;
    echo $Pagina -> main;
    echo $this -> voet;
    return 1;
    }    

}


$Body= new Cbody;


?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
// main.php
$main = '
main pagina<br>
<br>
bla bla bla<br>
<br>
'
;
?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
// foto.php
$main=
'
<a target="_blank" href="thumbmails.php?album=43">activiteit 43</a></br>
<a target="_blank" href="thumbmails.php?album=42">activiteit 42</a></br>
<a target="_blank" href="thumbmails.php?album=41">activiteit 41</a></br>
'
;
?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
// contact.php
$main=
'
contacteer de wabmaster : ...<br>
<br>
bla bla bla<br>
'
;
?>
 
PHP hulp

PHP hulp

21/12/2024 18:17:12
 
Bo az

Bo az

13/09/2007 16:26:00
Quote Anchor link
Om echt een hele website oo te maken is een hele toer. In PHP gebeurt dit zelden omdat het gebruik van objecten niet wordt afgedwongen.

Als je echt een hele website oo wil maken zal je toch eerst een aantal onderdelen van UML moeten kennen.
 
Emmanuel Delay

Emmanuel Delay

14/09/2007 15:08:00
Quote Anchor link
Ik ben nu verder bezig geweest met deze structuur verder te bouwen.

Echt een hele toer is het niet hoor. Het is uiteraard even wennen. Geloof me, ik ben "opgevoed" als sequentieel programmeur en OOP knaagde wat, in het begin, maar eens je er mee weg bent, zie je direct de voordelen.

mijn class Cpagina bereidt alle variabelen en parameters voor, mijn class Cmysql haalt alles wat nodig is uit de db.
Dat wordt allemaal gestuurd naar een object van Cbody.
Vooraleer er iets van echo gebeurt, is alles al goed voorbereid.
 
PHP erik

PHP erik

14/09/2007 15:26:00
Quote Anchor link
Quote:
Echt een hele toer is het niet hoor. Het is uiteraard even wennen. Geloof me, ik ben "opgevoed" als sequentieel programmeur en OOP knaagde wat, in het begin, maar eens je er mee weg bent, zie je direct de voordelen.
En toch vind ik je toepassing van OOP vrij nutteloos in dit geval. Je kunt veel beter een template engine gebruiken en aparte objecten gebruiken voor bijvoorbeeld data afhandeling, databases, file accessing, etc. Jij gebruikt OOP nu gewoon om je HTML te echo-en. Ik vind je manier juist omslachtig en niet erg flexibel.
 
PHP erik

PHP erik

14/09/2007 15:29:00
Quote Anchor link
Quote:
Als je echt een hele website oo wil maken zal je toch eerst een aantal onderdelen van UML moeten kennen.
Niet mee eens. OOP is ook goed toe te passen zonder UML. Het is een beetje raar om te stellen dat UML nodig is voor OOP. Het is handig maar zeker niet nodig. Als je inzicht hebt en bijvoorbeeld design patterns gebruikt dan kom je makkelijk even ver.
 
Frank -

Frank -

14/09/2007 15:39:00
Quote Anchor link
Ben het met PHPerik eens, een template-engine lijkt mij een stuk handiger dan de complete html hardcoded in je classe op te nemen. Hiermee verlies je de flexibiliteit en daarmee dus 1 van de grote voordelen van OOP. Smarty is een bekende en bevalt mij goed.

UML is een hulpmiddel en daar zijn er meer van. Het is in elk geval geen doel en het is evenmin noodzakelijk dat je het kent.

OOP is verder leuk en aardig, maar voor mij is het geen doel op zich. Daar waar ik sneller klaar ben met een stuk procedurele code, komt er gewoon procedurele code in het script te staan. Ik schat dat ik de 80/20-regel aardig toepas, zo'n 80% zal OOP zijn. Smarty, PDO en stored procedures in Postgresql (= ORDBMS) vormen een fraaie combinatie.
 
Emmanuel Delay

Emmanuel Delay

14/09/2007 15:47:00
Quote Anchor link
Voor alle duidelijkheid: ik wil vooral niet zeggen dat ik het allemaal weet he.

Ik vroeg eigenlijk hoe anderen oop in hun site gebruiken.

Qua experiment wou ik eens in het extreme gaan en naarmate de site groeit, ondervind ik dat ik me redelijk makkelijk voel met de structuur die ik gebruik.
 
Jelmer -

Jelmer -

14/09/2007 15:48:00
Quote Anchor link
De discussie over een template engine gebruiken of niet heb ik al eens eerder met pgFrank gevoerd, en volgens mij kwamen we tot de conclusie dat het gewoon een goeie manier is om het MVC design pattern af te dwingen (en je programmeurs wat te beperken in hun vrijheid)

Verder is UML zeker niet nodig. Het is erg handig om je idee te delen met anderen, of om het goed duidelijk te maken voor jezelf. Zeker in het begin loop je vaak tegen problemen aan, en verzin je oplossingen die achteraf eigenlijk niet flexibel genoeg noch efficiënt zijn. Misschien dat je met UML deze problemen eerder tegenkomt, maar ik betwijfel of je je daar volledig mee in kan dekken.

Daarnaast is jet prima om tegen die problemen aan te lopen. Leer je alleen maar van, zeker als het kan leiden qua tijd en dergelijke.

Ik raad je aan om eens naar het MVC design pattern te kijken, en eventueel naar de "Partials" die Ruby on Rails gebruikt. Dezen zijn mooi te combineren, en ik denk dat je er meer mee kan dan met je huidige opzet. MVC is misschien geschikter voor webapplicaties, maar ik denk dat het ook prima voor een normale site gebruikt kan worden.
 
Jan geen

Jan geen

14/09/2007 16:17:00
Quote Anchor link
heb je een linkje van MVC in php?
 
Frank -

Frank -

14/09/2007 16:29:00
Quote Anchor link
Hier een paar links die ik ooit in de bookmarks heb gezet. Ken niet alle artikelen, kwaliteit doe ik dus geen uitspraak over... ;)

link
link
link
link
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
PHP erik

PHP erik

14/09/2007 16:30:00
Quote Anchor link
Rik, de taal maakt niet uit bij MVC. MVC = Model View Controller. Veel Googleplezier ;)
 
Jan geen

Jan geen

14/09/2007 17:43:00
Quote Anchor link
MVC in java ken ik, maar dacht dat het in php weer net iets anders zou werken. bedankt iig.
 
PHP erik

PHP erik

14/09/2007 17:47:00
Quote Anchor link
Het principe is hetzelfde.
 



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.