Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czy to jest poprawna klasa?
Forum PHP.pl > Forum > Przedszkole
ShadowD
Napisałem taką mini klasę, i jestem ciekawy czy jest ona poprawna??

Jest to tylko bezsensowny prototyp który ma mi powiedzieć czy mogę tak pisać...

  1. <?php
  2.  
  3. class Form
  4. {
  5.  
  6. private $form;
  7.  
  8. public function __construct()
  9. {
  10.  $this->form='Początek formularza <br>';
  11. }
  12.  
  13. public function input()
  14. {
  15. $this->form.='input <br>';
  16. }
  17.  
  18. public function buttom()
  19. {
  20. $this->form.='buttom <br>';
  21. }
  22.  
  23. public function wyswietl()
  24. {
  25. $this->form.='Koniec formularza <br>';
  26. echo $this->form;
  27. }
  28.  
  29. }
  30.  
  31. $forn=new form();
  32. $forn->input();
  33. $forn->input();
  34. $forn->input();
  35. $forn->input();
  36. $forn->buttom();
  37. $forn->wyswietl();
  38.  
  39. ?>
kbsucha
Uwielbiam tego typu pytania biggrin.gif Zdefiniuj słowo poprawny. Zresztą i tak okaże się że każdy ma inną filozofie pisania takiej klasy i ostatecznie bedziesz robił tak jak ci wygodnie.

Pozdr
ShadowD
Szczerze to jakoś nie mogę dobrać słowa.

Jak ostatnio czytałem, był jakiś temat autor dał klasę a inni mówili, że jest to kod strukturalny opakowany w klasę a mi chodzi o kod obiektowy.

Może to w jakiś sposób rozjaśni sprawę. winksmiley.jpg
Crozin
Dlaczego to jest złe? dlatego
ShadowD
Ja już nic nie wiem jak chodzi o obiektowy php. Czytałem książkę, kilkanaście artykułów i nic cały czas ktoś mówi, że coś jest źle i daje link do kolejnego artykułu. A ja po prostu nie jestem tego w stanie zrozumieć, bardzo proszę o lekkie zmodernizowanie mojego przykładowego kodu.

Wiem, nie powinienem prosić o tego typu rzeczy ale już nie wiem jak to powinno wyglądać, proszę o jedynie przykład z tego czegoś w pierwszym poście...

Z góry dzięki i przepraszam za problem. ;/

Ps Przestudiowałem ten artykuł i na tym poziomie nie widzę błędu, jedyną różnice widzę w tym, że tamten kolega zapisuje wszystko do tablicy a ja do jednej zmienne.
Crozin
Twój podstawowoy problem to to, że poza: class, public, private, -> nie ma tam nic z obiektowości smile.gif

Osobom, które chciałby poznać zasadę obiektowości proponuję zawsze stworzenie czegoś na kształt drzewa DOM, dlaczego? Ponieważ jest tam bardzo dobrze zoobrazowane:
1) Dziedziczenie
2) Interfejsy
3) "Wiele obiektów jednej klasy"
4) I wiele, wiele innych aspektów OOP

Możesz w ramach ćwieczeń napisać sobie inspektora DOM lub coś na kształ tego co mamy w JS:
Kod
var element = document.createElement('p');
var textNode = document.createTextNode('Hello there!');
element.appendChild(textNode);

var sth = document.getElementById('myId');
//itp itd
kbsucha
Właśnie dlatego uważam, że zadawanie tego typu pytań nie ma sensu. Załóżmy, że Crozin napisze Ci pseudokod, jak on to widzi. Zaraz pojawia się jeszcze 3 różne osoby, które będą miały trochę inną wizje tej klasy, zrobi się sporo zamieszania i nie będziesz wiedział które rozwiązanie jest dobre dla ciebie.
Wg mnie skoro poczytałeś artykuły i książki, to teraz pisz tak jak uważasz wykorzystując tą wiedzę. Ja często staram się podpatrywać źródła Framework'ów, nie tylko tych popularnych jak Zend, Symfony, ale także amatorskich, które ludzie udostępniają. Można spotkać ciekawe rozwiązania i sporo się nauczyć.

Co do twojego rozwiązania formularzy, ja np mam bardzo podobnie to rozwiązane tyle, że u mnie generowane są tylko dane, które przekazuje do widoku, wewnątrz klasy nie mam żadnych znaczników HTML, ale to wynika nie z obiektowości, tylko z stosowania wzorca MVC, którego jestem wielkim fanem. I mnie nie bardzo interesuje czy to jest zgodne z wszystkimi standardami programowania obiektowego, ważne że dla mnie stosowanie tej klasy jest wygodne.

Pozdr
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.