Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa wiadomości - sprawdzanie czy naciśnięto przycisk etc.
Forum PHP.pl > Forum > PHP > Object-oriented programming
Riot
Cześć, po sporej dawce wiedzy OOP (przynajmniej wg mnie) postanowiłem napisać klase która się mi wkońcu do czegoś przyda, mianowicie system wiadomości. Rozkminiłem sobie to tak że będą odzielne klasy - Nowa_Wiadomosc oraz Skrzynka_Odbiorcza. Pierwsze pytanie - dobrze myśle?

Napisałem sobie na razie taki szybki kod, nawet nie przypominający OOP:

  1. <form action="" method="POST">
  2. <input type="text" name="wiadomosc">
  3. <input type="submit" name="wyslij">
  4. </form>
  5. </body>
  6. </html>


  1. <?php
  2.  
  3. class Nowa_Wiadomosc {
  4.  
  5. function napisz_wiadomosc (){
  6. if (filtruj_pole($_POST["wyslij"])) {
  7. if (filtruj_pole($_POST["wiadomosc"], 2)) {
  8. //wysyla wiadomosc...
  9. }
  10. }
  11. }
  12.  
  13. function filtruj_pole($pole, $min_znakow = 0) { //sprawdza czy pole jest prawidlowo wypelnione
  14. if (isset($pole)) {
  15. if (strlen($pole) >= $min_znakow) {
  16. return strlen($pole);
  17. }
  18. }
  19. }
  20. }
  21.  
  22. $wiad = new Nowa_Wiadomosc();
  23. echo $wiad->filtruj_pole($_POST["wiadomosc"]);
  24. ?>


Tera tak - jak sprawdzić z gracją czy wciśnieto przycisk "wiadomosc"? Mogę zrobić if (isset($_POST["wiadomosc"])) {...} ale interesuje mnie jak to zrobić w OOP. Gdybyście podrzucili jakiś kod, byłoby znakomicie. Dzięki
Turson
1. Klasy i metode pisze się w stylu camelCase.
2. Przyjęło się, że używa się angielskich nazw przy nazewnictwie klas i metod.
3.
Cytat
Rozkminiłem sobie to tak że będą odzielne klasy - Nowa_Wiadomosc oraz Skrzynka_Odbiorcza. Pierwsze pytanie - dobrze myśle?

W teorii tak.
4.
Cytat
Tera tak - jak sprawdzić z gracją czy wciśnieto przycisk "wiadomosc"? Mogę zrobić if (isset($_POST["wiadomosc"])) {...} ale interesuje mnie jak to zrobić w OOP

a if(isset(.. nie jest z gracją? Innego sposobu nie ma. Może być if(!empty ale czy to dodaje gracji? Póki nie masz własnego mechanizmu obsługi żądań to nic innego nie wymyślisz.
5.
  1. if (filtruj_pole($_POST["wyslij"])) {

Zapominasz o słowie kluczowym $this
6.
  1. function filtruj_pole($pole, $min_znakow = 0) { //sprawdza czy pole jest prawidlowo wypelnione
  2. if (isset($pole)) {
  3. if (strlen($pole) >= $min_znakow) {
  4. return strlen($pole);
  5. }
  6. }
  7. }

if(isset($pole - bez sensu. Pole musi istnieć skoro przekazujesz je jako argument. Jak nie przekażesz to PHP wywali bład,
Riot
Cytat(Turson @ 25.11.2014, 18:34:23 ) *
1. Klasy i metode pisze się w stylu camelCase.
2. Przyjęło się, że używa się angielskich nazw przy nazewnictwie klas i metod.


Zdaje sobie z tego sprawę tongue.gif

Cytat(Turson @ 25.11.2014, 18:34:23 ) *
Zapominasz o słowie kluczowym $this

Too wtedy jeden obiekt = pole. Tak? wink.gif

Cytat(Turson @ 25.11.2014, 18:34:23 ) *
if(isset($pole - bez sensu. Pole musi istnieć skoro przekazujesz je jako argument. Jak nie przekażesz to PHP wywali bład,

Podejrzewałem że działa to w sposób -> przesyłam sobie to pole, sprawdza czy istnieje. Bo w źródle można zmienić nazwę pola biggrin.gif Widocznie sie myliłem.
Turson
Cytat
Too wtedy jeden obiekt = pole. Tak? wink.gif

Przeczytaj kurs OOP jeszcze raz smile.gif

Cytat
Podejrzewałem że działa to w sposób -> przesyłam sobie to pole, sprawdza czy istnieje. Bo w źródle można zmienić nazwę pola biggrin.gif Widocznie sie myliłem.

Ale nie sprawdzasz czy ktoś nie zmienił nazwy a tylko czy zmienna pochodząca z wymaganego argumentu istnieje.
Riot
Czytałem pincet razy. Kilka lat pisania w języku w którym dopiero wprowadzają 'pseudo' OOP robi swoje. Mogłeś napisać po prostu gdzie popełniam błąd wink.gif
Turson
Sprawdź $this i self
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-2024 Invision Power Services, Inc.