Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zagnieżdżanie html w klasie?
Forum PHP.pl > Forum > PHP > Object-oriented programming
bl4ck_b0x
Witam. Przeglądając stronę Heliona (tak wiem, wielu narzeka na te wydawnictwo - ale nie o to chodzi) trafiłem na książkę "Programowanie obiektowe w PHP 5", korzystając z przykładów zamieszczonych na ftp (które są w tej książce), ściągnąłem, rozpakowałem archiwum, otworzyłem rozdział 1, zawiera się w nim jedna klasa - emailer.

  1. <?
  2. // class.emailer.php
  3. class Emailer
  4. {
  5.   private $sender;
  6.   private $recipients;
  7.   private $subject;
  8.   private $body;
  9.   function __construct($sender)
  10.   {
  11.      $this->sender = $sender;
  12.      $this->recipients = array();
  13.   }
  14.  
  15.   public function addRecipients($recipient)
  16.   {
  17.      array_push($this->recipients, $recipient);
  18.   }
  19.   public function setSubject($subject)
  20.   {
  21.      $this->subject = $subject;
  22.   }
  23.   public function setBody($body)
  24.   {
  25.      $this->body = $body;
  26.   }
  27.   public function sendEmail()
  28.   {
  29.      foreach ($this->recipients as $recipient)
  30.      {
  31.         $result = mail($recipient, $this->subject, $this->body,
  32.            "From: {$this->sender}r\n");
  33.         if ($result) echo "Wiadomość została wysła do
  34.            {$recipient}<br/>";
  35.      }
  36.   }
  37. }
  38. ?>



Pytanie moje jest następujące: czy dozwolonym, etycznym i poprawnym jest zamieszczanie kodu HTML w samej klasie? Kiedyś przeglądając forum trafiłem na klasę pisaną przez amatora która była przepełniona HTMLem i o mało nie został tutaj zlinczowany ;P Jako, że nie piszę obiektowo (ciągle się do tego przymierzam) stąd moje pytanie - aby nie popełniać błędów winksmiley.jpg

Drugie pytanie: jeśli używanie HTMLa w samej klasie jest błędem jak zatem informować o czymś użytkownika nie wpisując tego w klasie? Stosować true i false a "po stronie użytkownika" (brakuje mi słowa które niedawno wyczytałem; chodzi o wykorzystanie klasy... mam nadzieję, że zrozumiecie o co chodzi) stosować:

  1. <?
  2. ...
  3. if (true)
  4. {
  5. echo 'wyslano';
  6. }
  7. else
  8. {
  9. echo 'nie wyslano';
  10. }
  11. ..
  12. ?>

Proszę o odpowiedzi smile.gif

P.S.
Jeśli macie jakieś rady dla kogoś raczkującego w temacie programowania zorientowanego obiektowo to również możecie pisać smile.gif
erix
Cytat
Pytanie moje jest następujące: czy dozwolonym, etycznym i poprawnym jest zamieszczanie kodu HTML w samej klasie?

Jeśli działasz w oparciu o model MVC - jest niedozwolone, nieetyczne i niepoprawne. tongue.gif

Cytat
Drugie pytanie: jeśli używanie HTMLa w samej klasie jest błędem jak zatem informować o czymś użytkownika nie wpisując tego w klasie? Stosować true i false a "po stronie użytkownika" (brakuje mi słowa które niedawno wyczytałem; chodzi o wykorzystanie klasy... mam nadzieję, że zrozumiecie o co chodzi) stosować:

HTML a komunikat, to nieco inne sprawy. Możesz przecież dorzucać kolejną zmienną akcji, wywołać widok komunikatu i wypluć informację.
Rafal Filipek
Cytat
Pytanie moje jest następujące: czy dozwolonym, etycznym i poprawnym jest zamieszczanie kodu HTML w samej klasie?

zalezy pewnie od klasy, czasami jest konieczne umieszczanie fragmentow html'a ( np. klasy odpowiedzialne za widok [View] we frameworkach albo odpowiedzialne za prasowanie np. texile )
co do "informowanie uzytkownika"
Kod
<?php
class Foo{
  public function czyMoge(){
    return true;
  }
}
$f = new Foo();
?>

//jakis tam html

<?php if ($f->czyMoge()): ?>
<p>tak, możesz</p>
<?php else: ?>
<p>nie możesz</p>
<?php endif; ?>


ale to jest tylko przyklad smile.gif wszystko zalezy od konkretnego przypadku smile.gif
erix
Cytat
( np. klasy odpowiedzialne za widok [View] we frameworkach albo odpowiedzialne za prasowanie np. texile )

Za widok? A ja myślałem, że od tego jest skeleton (szkielet strony, ale też z szablonów)... Textile? No to jest już bardziej powiązane z widokiem, to nie ma rady - musi być.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.