Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Hooks?, ... nie wiem jak to nazwać...
bim2
post
Post #1





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Mam mały problem. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Powiedzmy, że mam akcję Users do tego model i widok. Działa to sobie normalnie.

Ale dokładam akcję Players i chce, żeby dla każdego usera w bazie w osobnej tabeli dodał się nowy wiersz . Dla przykładu:
  1. <?php
  2. class Action_User {
  3.  public function register()
  4.  {
  5.    $this->oDb->Insert('users', array('name' => $this->postString('name'), 'password' => md5($this->postString('password'))));
  6.    // i w tym momencie chciałbym dodać jeszcze jeden wiersz do kolumny. Bawiłem się w normalne dopisywanie, ale czasami nie jest to za wygodne. Zwłaszcza jak wrzucam poprawki z innych aplikacji.
  7.    $this->oDb->Insert('players' ... );
  8.  
  9.  }
  10. }
  11. ?>

Pomyślałem że może by zrobić haki.
  1. <?php
  2. $this->oDb->Inser(...);
  3. $this->hookAdd('User', 'afterRegister');
  4. ?>

i później jakiś Settings/hooks.php
  1. <?php
  2. $oHook = $oController->getHookObject();
  3. $oHook->event('User', 'afterRegister')->execute('Players', 'addRowsForUserAction');
  4. ?>


Oczywiście byłby automatyczny hook przed wywołaniem akcji i po wywołaniu.

Tylko, może ktoś ma lepszy pomysł? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jestem otwarty na propozycje ;]

Ten post edytował bim2 9.06.2009, 20:30:51
Go to the top of the page
+Quote Post
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%)
-----


OOP??

Ja mam ActiveRecord.
Klasa user, po zapisie wywoluje na obiekcie usera automatycznie afterInsert() w ktorej to metodzie moge utworzyc rekord Playera itd.
Go to the top of the page
+Quote Post
bim2
post
Post #3





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


No własnie tego chce uniknąć, żeby w pliku gdzie leżą akcje należące do usera trzymać afterRegister(); Jak pisałem mam kilka aplikacji działających na tym samym frameworku i zdarza się, że dodam coś lub znajdę błąd i chciałbym to szybko wgrać do iluśtam aplikacji. Tylko, że w niektórych mam pododawane metody i wtedy musze otwierać plik i zmieniać. ;/ Dlatego się zastanawiam nad jakimś rozwiązaniem.

Cytat
OOP??

Mówisz o dziale?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





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

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


Mowie o twoim kodzie. Ale nvm, takie czepianie sie.

Hmm, zrob klase bazowa UserBase - ktora wszedzie bedzie identyczna, a w kazdej aplikacji dodasz swoja klase
User extends UserBase ktora moze miec customowe afterInsert() itp.
Go to the top of the page
+Quote Post
bim2
post
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Oo, jakoś mi umknęło dziedziczenie. Tylko, że wtedy troche bym musiał system przebudować. Ale i tak koncepcja warta rozważenia (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 18:13