Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Interfejsy Począwszy od klasy głównej
daniel1302
post
Post #1





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Witam mam główną klasę
Validator implements ValidatorInterface
EmailValidator extends Validator
PassValidator extends Validator

oraz
interface ValidatorInterface
{
public function validating($subject)
}


Wszystkie klasy oprócz Validator mają metodę validating($subject)
praser PHP zwraca błąd ze klasa validator niema metody ... pomimo iż odwołuje się do $email = new EmailValidator;
Jak wymusić żeby wszystkie klasy pochodne mieły metodę validating?
Musze do każdej klasy pochodnej dopisywać interfejs ValidatorInterface?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


Jeżeli nie będziesz nigdy tworzył obiektów klasy Validator ( a na to wygląda, skoro nie ma ona metody validating() ), to przerób ją na klasę abstrakcyjną:

  1. <?php
  2.  
  3.  
  4. abstract class Validator
  5. {
  6. abstract public function validating();
  7.  
  8.  
  9. protected function cos()
  10. {
  11. return 'aabbcc';
  12. }
  13. }
  14.  
  15.  
  16. class EmailValidator extends Validator
  17. {
  18. public function validating()
  19. {
  20. return 'EmailValidator::validating() - ' . $this->cos();
  21. }
  22. }
  23.  
  24. class PassValidator extends Validator
  25. {
  26. public function validating()
  27. {
  28. return 'PassValidator::validating() - ' . $this->cos();
  29. }
  30. }
  31.  
  32.  
  33. $email = new EmailValidator;
  34. echo $email->validating();
  35.  
  36. ?>


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
daniel1302
post
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Dziękuje znam to wszystko lecz już z 3 miesiące nie pracowałem w OOP i sie to za pomina
Go to the top of the page
+Quote Post
Kocurro
post
Post #4





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


@daniel1302: uwierz mi, że gdybyś to faktycznie znał to byś nie zapomniał nawet po 3 latach przerwy w pracy winksmiley.jpg

To taki mały offtopic .

pozdr.
Łukasz
Go to the top of the page
+Quote Post
daniel1302
post
Post #5





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Znam to lecz nie pracowałem z tym długo bo jakieś 2 tyg i później wogóle
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 06:29