Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie zmiennych pomiędzy klasami rodzica i dziedzica ;-)
br-design.pl
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 30.05.2006
Skąd: Gdańsk

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


Mam pewien problem.

Otóż mam klasę, po której dziedziczą inne klasy, w tej klasie mam funkcje add, która dodaje rekord do bazy.
Oprocz tego mam metody beforeAdd i afterAdd, tak aby mozna bylo w klasie dziedziczacej wplywac na klase add bez jej nadpisywania.

  1. <?php
  2. class ApplicationController {
  3. public function add() {
  4. $record = ... pobieram obiekt ActiveRecord.
  5.  
  6. beforeAdd($record);
  7. ... tutaj dodawanie do rekordu...
  8.  if($rekord->save()) {
  9.  afterAdd($record);
  10.  }
  11.  
  12. beforeAdd($record) {
  13.  
  14. }
  15.  
  16. afterAdd($record) {
  17.  
  18. }
  19. }
  20. ?>

Teraz w klasie dziedziacej chcialbym moc korzystac z tego parametru record ktory jest jest przekazywany do tych funkcji after i before.

np.
  1. <?php
  2. class news extends ApplicationController {
  3. afterAdd() {
  4. $record->status = 'dodany';
  5.  }
  6. }
  7. ?>


Chodzi o to w jakis sposob moge korzystac z parametrow przekazywanych do funkcji rodzica w klasie ktora dziedziczy. Ktos moze pomoc?


--------------------
tworzenie stron Gdańsk
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <?php
  2. abstract class AppController // chociaz nienajlepsza nazwa dla tej klasy
  3. {
  4. public function add( $record )
  5. {
  6.  
  7. beforeAdd( $record );
  8. // tutaj dodajesz rekord
  9. afterAdd( $record );
  10. }
  11.  
  12. abstract public function beforeAdd( $record );
  13. abstract public function afterAdd( $record );
  14. }
  15.  
  16. class JakisAppController extends AppController
  17. {
  18. public function beforeAdd( $record )
  19. {
  20.  ....// i to zostanie wywolane
  21. }
  22.  
  23. public function afterAdd( $record )
  24. {
  25.  ....// i to zostanie wywolane
  26. }
  27.  
  28. }
  29.  
  30. ?>

Wzorzec Template Method


--------------------
Nie lubię jednorożców.
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 - 10:14