[php] manier van proggen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Topicstarter
Ik heb gepoogd OO te programmeren in php. Een simpel gastenboek. En wel ongeveer op deze manier.

PHP:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
//begin class Guestbook
class Guestbook
{
 
  function Guestbook(){
  }
  //begin function
  function GuestbookPrint()  //afdrukken van inhoud class persoon
  {
     include("connect.php");
     $sql_select = "SELECT * FROM gastenboek ORDER BY id DESC";       
     $result = mysql_query($sql_select,$db);
     if($result){
          while ($message = mysql_fetch_object($result)) {
            echo "<center><p><table>";
            echo "<tr><td 

width=125><b>Naam:</b></td><td>$message->naam</td></tr>";
            echo "<tr><td 
width=125><b>WWW:</b></td><td><a href='$message->homepage'>$message->homepage</a></td></tr>";

            echo "<tr><td valign=top width=125><b>E - mail:</b></td><td>
<a href='mailto:$message->email'>$message-
>email</td></tr>";
            echo "<tr><td valign=top 
width=125><b>berichtje:</b></td><td>$message->text</td></tr>";
            echo "<tr><td width=125><b>Toegevoegd 
op:</b></td><td><font color=#FF0000>$message->datumtijd</font></td></tr>";

            echo "</table></p><br><hr size=1 color=#000000 
width=60%></center>";
          }
     }  
  }//end function
  
  
}
//end class guestbook

//begin class message
class Message
{
  var $name;
  var $homepage;
  var $email;
  var $ip;
  var $datetime;
  var $text;
  
  //begin function
  function Message($_name,$_homepage,$_email,$_text,$_ip,$_datetime) 
  {
    $this->name = $_name; 
    $this->homepage = $_homepage ;
    $this->email = $_email;
    $this->text = $_text;
    $this->ip = $_ip;
    $this->datetime =  $_datetime;//current date and time
    $this->browser = $_browser;
  }//end function
  

  
  //begin function
  function AddtoDatabase()
  {
     include("connect.php");//connect met de database
     //$this->datetime = "";
     $sql_insert = "INSERT INTO gastenboek VALUES
('','$this->name','$this->homepage','$this->email','$this->datetime','$this->text','$this->ip')"; 
     $resultaat = mysql_query($sql_insert, $db);
      if($resultaat){
        echo "Uw reactie is toegevoegd "; 
     }
     else
 {echo "Excuses, er is een fout opgetreden! Druk op de back - knop en <br> 
probeer het nog een keer!";
           echo mysql_error(); 
          }
    mysql_close($db);     
  } 
  //end function
} //end class message 


Nou heb ik een html - pagina waarbij ik bij het posten de variabelen meegeef naar het volgende php - bestand

PHP:
1
2
3
4
5
<?php
include("classmessage.php");
$_message = new Message($name,$homepage,$email,$text,$ip,$datetime);
$_message->AddtoDatabase();
?>


Nu mijn vraag: "Is dit ongeveer de manier waarop men OO programmeert in PHP?"

Of is een andere manier gebruikelijk?

[ Voor 52% gewijzigd door koli-man op 28-06-2003 16:16 . Reden: layout ]

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Het kan nog netter: Een gastenboek bestaat toch uit messages? Laat dan een message zichzelf wegschrijven.

Je krijgt dan in guestbook zoiets:
PHP:
1
2
3
4
5
while($row = fetch_object()) {
  $a[] &= $x = new Message();
  $x->readFromDb($row);
  echo $x->getHtml();
}

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Topicstarter
hmmz ja, maar hier bouw je toch elke keer het hele gastenboek op, terwijl je eigenlijk maar één bericht wilt wegschrijven, want in de lus leest hij telkens van de DB?

[ Voor 12% gewijzigd door koli-man op 28-06-2003 16:33 ]

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

Verwijderd

Zoek eerst wat op over templates & PHP, en begin dan opnieuw!

HTML & PHP door elkaar (en dat zelfs in 1 class) is echt geen werk.

Succes :)

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Verwijderd schreef op 28 juni 2003 @ 16:57:
Zoek eerst wat op over templates & PHP, en begin dan opnieuw!

HTML & PHP door elkaar (en dat zelfs in 1 class) is echt geen werk.

Succes :)
Lekkere flame... bovendien ongefundeerd.
Het is onmogelijk om een class te schrijven die output genereert zonder er HTML in te zetten. Oftewel: je praat onzin (oh, da's ook een flame)

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Topicstarter
wat is daar verkeerd aan? html in je php, tja ik kan constant de <?php ?> enzo erin zetten, maar dan komt de leesbaarheid niet ten goede

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

  • muis
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
Iedere klasse zou alleen verantwoordelijk moeten zijn voor zich zelf.

De klasse Message zou alleen de message zelf moeten opmaken dmv een query oid.
Nu houdt de klasse Message zich ook nog bezig met de db connectie en verzorgt ie een stuk HTML

Als de klasse bv voor 2 verschillende guestbooks wilt gebruiken maar bij allebei een ander bericht wilt teruggeven wanneer een message is toegevoegd dan wordt dat nu een beetje moeilijk. Door bv alleen een "true" of een "false" terug te geven kan je vervolgens per guestbook bepalen watvoor melding je erbij geeft

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


Acties:
  • 0 Henk 'm!

Verwijderd

kvdveer schreef op 28 June 2003 @ 17:09:
[...]

Lekkere flame... bovendien ongefundeerd.
Het is onmogelijk om een class te schrijven die output genereert zonder er HTML in te zetten. Oftewel: je praat onzin (oh, da's ook een flame)
Ja natuurlijk moet je 'ergens' html hebben, best logisch, weet hij ook wel.

Maar het is wel mogelijk om een class te schrijven die je messages ophaalt/wegschrijft van/naar de database en een andere class die de output genereert.

En dat moet hij nu namelijk zelf ontdekken; en als je het principe van die scheiding van de eerste keer aanleert dmv. templates, zal het resultaat niet zo slecht zijn, ipv. hem nu verder te laten klooien met classes waar hij na een aantal maanden toch geen raad meer mee weet.

Ik heb hem een tip gegeven ('zoek naar templates'), dat is al een goede duw in de richting. Waarom jij dat aanziet als flame, is mij een raadsel.

edit: idd muis, zo kan je het stellen. Wat heeft het nu voor zin hem hier verder mee te laten vechten, als het toch al een verloren strijd is ;)

[ Voor 21% gewijzigd door Verwijderd op 28-06-2003 17:21 ]


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Topicstarter
muis schreef op 28 June 2003 @ 17:15:
Iedere klasse zou alleen verantwoordelijk moeten zijn voor zich zelf.

De klasse Message zou alleen de message zelf moeten opmaken dmv een query oid.
Nu houdt de klasse Message zich ook nog bezig met de db connectie en verzorgt ie een stuk HTML
Ja, inderdaad daar heb je een punt, die db connectie kan ik ergens anders zetten en de html kan ik ook wel ergens anders zetten. Daar hedde gelijk in.
Als de klasse bv voor 2 verschillende guestbooks wilt gebruiken maar bij allebei een ander bericht wilt teruggeven wanneer een message is toegevoegd dan wordt dat nu een beetje moeilijk. Door bv alleen een "true" of een "false" terug te geven kan je vervolgens per guestbook bepalen watvoor melding je erbij geeft

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Topicstarter
Verwijderd schreef op 28 June 2003 @ 17:17:
[...]
Ja natuurlijk moet je 'ergens' html hebben, best logisch, weet hij ook wel.


Ik heb hem een tip gegeven ('zoek naar templates'), dat is al een goede duw in de richting. Waarom jij dat aanziet als flame, is mij een raadsel.

edit: idd muis, zo kan je het stellen. Wat heeft het nu voor zin hem hier verder mee te laten vechten, als het toch al een verloren strijd is ;)
Ten eerste: Ik wil niet persé templates gebruiken. De functionaliteit van templates kan ik ook bereiken met het zelf schrijven van functies.

Ten tweede: "verloren strijd?!? :r " Er kan altijd iets aangepast worden en daar sta ik voor open!!!

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

Verwijderd

Je titel van je thread is 'manier van proggen'. Bij deze?

Acties:
  • 0 Henk 'm!

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04 10:28

JeRa

Authentic

Het combineren van PHP en HTML in een class maakt het er gewoon niet duidelijker op; wat ik gewoonlijk doe is een class maken die al het dataverkeer regelt, en een frontpage (met die class geincluded) die de HTML output.

ifconfig eth0 down


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Topicstarter
JeRa schreef op 28 June 2003 @ 17:32:
Het combineren van PHP en HTML in een class maakt het er gewoon niet duidelijker op; wat ik gewoonlijk doe is een class maken die al het dataverkeer regelt, en een frontpage (met die class geincluded) die de HTML output.
Ja, dat is inderdaad beter. Net zoals de connectie met de database e.d. apart gezet kan worden. Maar het gebruik van templates ben ik eigenlijk niet zo zeker van.

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04 10:28

JeRa

Authentic

koli-man schreef op 28 June 2003 @ 17:34:
[...]


Ja, dat is inderdaad beter. Net zoals de connectie met de database e.d. apart gezet kan worden. Maar het gebruik van templates ben ik eigenlijk niet zo zeker van.
Templates zijn in dit geval overbodig; dit is alleen handig als je je code wilt gaan publiceren en door anderen wilt laten gebruiken zodat zij makkelijk de templates kunnen aanpassen zonder in de PHP-code te zitten.

ifconfig eth0 down


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
JeRa schreef op 28 June 2003 @ 17:36:
[...]


Templates zijn in dit geval overbodig; dit is alleen handig als je je code wilt gaan publiceren en door anderen wilt laten gebruiken zodat zij makkelijk de templates kunnen aanpassen zonder in de PHP-code te zitten.
...en ze zijn handig om je code net te houden. Ik doe niets liever dan templates proggen: niet alleen omdat ik dan makkelijk de layout kan aanpassen, maar nog veel meer omdat de code net wordt. Geen HTML meer tussen PHP. Ik gebruik voor templates m'n eigen stackbased parser (http://dev.trag.nl/ccbv/include/tpltest.php en www.codebase.nl voor de download).

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Ik heb een aantal classes. De template engine is natuurlijk ook een class. Het combineren van beide gaat in PHP echter lastig omdat je dan met bijvoorbeeld extends moet gaan werken? Je zult toch op een of andere manier die dingen in je class moeten krijgen.
Pagina: 1