Avatar billede mccookie Seniormester
30. november 2006 - 08:30 Der er 7 kommentarer og
1 løsning

OOP nyhedsbrev

Hejsa

Jeg vil forsøge mig OOP i forbindelse med at skulle lave et nyhedsbrev, jeg har faktisk ikke helt styr på hvordan man gør. Derfor har jeg læst lidt hid og did på nettet, fundet lidt her og fundet lidt der, prøvet at sammenstykke et helt billede af begrebet OOP.
Jeg har fået en lille idé og kan se fordele ved det, så kunne jeg slippe for en masse, til tider, uoverskuelige mange linier kode ;)

På vejen rundt i junglen OOP har jeg ved samme lejlighed konstateret, at vandene er lidt delt omkring PHP og OOP - Jeg tager chancen og vil bruge skidtet - Men har brug for lidt hjælp.

Jeg forstiller mig at skulle lave et nyhedsbrev og mit første bud er eksemplet nedenunder.

Allerede her opstår nogle spørgsmål!

- Hvordan håndteres fejl?
- Er det helt forkert?

Målet er todelte, dels en nyhedsbrev klasse som jeg evt. kan bruge og dels forståelse for begrebet OOP - Thi, det lyder spændende.

Class Nyhedsbrev

var $overskrift   
var $modtager_gruppe
var $afsender
var $indhold

function overskrift($var)
{
// Tjek er der en overskrift – ellers fejl!
// Formater overskrift

$this->overskrift = ’$var’;   
}

function modtager_gruppe($var)
{
// Er der valgt en gruppe? – ellers fejl!
// Sæt modtagergruppe

$this->modtager_gruppe = ’$var’;
}

function afsender($var)
{
// Er der en afsender – ellers fejl!

$this->afsender = ’$var’;
}

function indhold($var)
{
// Er der indhold – ellers fejl!

$this->indhold = ’$var’;
}

function send()
{
// Hent data fra databasen

// Send nyhedsbrevet ud

// Brev afsendt
}

$nyhed = new nyhedsbrev();
$nyhed->overskrift(Nyhedsmail nr. 1);
$nyhed->modtager_gruppe(user);
$nyhed->afsender(Mig@mig.dk);
$nyhed->indhold(BLABLABLABLABLABLABLA);

Lad mig høre...........
Avatar billede codebase Praktikant
01. december 2006 - 23:26 #1
lå lige inde med det her..

brugt og skulle virke..

<?php

class mailHandler
{

    function mailHandler( $toEmail = false, $toName = false, $fromName = false, $mailFromEmail = false, $mailFromName = false )
    {
        $this->toEmail = $toEmail;
        $this->toName = $toName;
        $this->fromName = $fromName;
        $this->mailFromEmail = $mailFromEmail;
        $this->mailFromName = $mailFromName;
    }
   
    function toEmail()
    {
        return $this->toEmail;
    }
   
    function settoEmail( $value )
    {
        $this->toEmail = $value;
    }
   
    function toName()
    {
        return $this->toName;
    }
   
    function settoName( $value )
    {
        $this->toName = $value;
    }
   
    function fromName()
    {
        return $this->fromName;
    }
   
    function setfromName( $value )
    {
        $this->fromName = $value;
    }
   
    function mailFromEmail()
    {
        return $this->mailFromEmail;
    }
   
    function setmailFromEmail( $value )
    {
        $this->mailFromEmail = $value;
    }
   
    function mailFromName()
    {
        return $this->mailFromName;
    }
   
    function setmailFromName( $value )
    {
        $this->mailFromName = $value;
    }
   
    function subject()
    {
        return $this->subject;
    }
   
    function setsubject( $value )
    {
        $this->subject = $value;
    }
   
    function body()
    {
        return $this->body;
    }
   
    function setbody( $value )
    {
        $this->body = $value;
    }
   
   

    function sendMail( )
    {
$headers .="From: mail@from.dk\r\n";
$headers .="MIME-Version: 1.0\r\n";
$headers .="Content-Type: text/plain; charset=ISO-8859-1\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .="User-Agent: my mailer script  1.0.0\r\n";
$headers .="X-Originating-IP: ".$_SERVER["REMOTE_ADDR"]."\r\n";
$headers .="Return-Path: mail@from.dk\r\n";
   
        // Mail it
    if (  $this->toEmail != false )
        return mail($this->toEmail  , $this->subject ,$this->body,$headers );
    }
   
    var $toEmail;
    var $toName;
    var $fromName;
    var $mailFromEmail;
    var $mailFromName;
   
    var $subject;
    var $body;
   
}

?>
Avatar billede mccookie Seniormester
23. januar 2007 - 21:01 #2
Vil du have lidt point?
Avatar billede codebase Praktikant
24. januar 2007 - 00:17 #3
samler ik ;)
Avatar billede mccookie Seniormester
24. januar 2007 - 12:23 #4
Det så iorden ;) så får du karma istedet for din hjælp ;)
Avatar billede windcape Praktikant
24. januar 2007 - 12:29 #5
codebase's kode ville nok være lidt pænere med __get/__set istedet for alle de methoder :-)
Avatar billede windcape Praktikant
24. januar 2007 - 12:53 #6
Avatar billede mccookie Seniormester
24. januar 2007 - 16:04 #7
Hvorfor de der __ ??

Har kigget på dine eksempler ;) nice læsning
Avatar billede windcape Praktikant
25. januar 2007 - 00:59 #8
__ definere en magisk metode (ja, det hedder de).

__get($key) bliver kaldt hver gang du laver $object->foo; altså forsøger at tilgå en property.

Det er en nem måde at undgå at skulle gave getFoo/setFoo metoder hele tiden, men skal dog bruges varsomt.

__construct() indikere en konstructor i PHP5.
__empty() er så man kan check om ens object er "tom", når man samtidig bruger en iterator så man kan loope dataen over. Hvilket er en del af SPL (www.php.net/spl)
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