Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tracker - rejestrowanie wprowadzonych zmian
drbane
post 23.07.2007, 14:25:07
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


Zastanawiam sie jak zrobić logowanie zmian w stylu: użytkownik wchodzi do edycji danych (np. produktu) i zmienia np. tylko jego cenę. Muszę zarejestrować zmianę ceny (tylko ceny, użytkownik opisu i innych wartości nie zmieniał). System został napisany przez kogoś innego i jest dosyć spory.

Co mi przychodzi do głowy to tyle, żeby za każdym razem przy zapisie wywoływać funkcję z tytułem operacji, nazwą pola i jego wartością. Tak jak pisałem, system jest spory więc czekałoby mnie edytowanie wszystkie gdzie takie zmiany miałyby być rejestrowane.
Inna sprawa, to jak wychwycić co było zmienione? Porównywać wprowadzone dane z tym co jest w bazie?

Może jest jakieś inne rozwiązanie? Może ktoś już miał podobny problem?


--------------------
only Google!
Go to the top of the page
+Quote Post
UDAT
post 23.07.2007, 14:43:08
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


W jaki sposób masz realizowany zapis?
Go to the top of the page
+Quote Post
drbane
post 23.07.2007, 14:50:23
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


Jest główna nadrzędna klasa w której jest metoda zapisu.
edit:
----
Zapis jest realizowany tak, że do metody jest podawana tablica w której są pola i wartości (zrzut $_POST) i klasa zapisuje je w wybranej tablicyMySQL.

Ten post edytował drbane 23.07.2007, 15:01:23


--------------------
only Google!
Go to the top of the page
+Quote Post
UDAT
post 23.07.2007, 15:10:10
Post #4





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Cytat(drbane @ 23.07.2007, 15:50:23 ) *
Jest główna nadrzędna klasa w której jest metoda zapisu.
edit:
----
Zapis jest realizowany tak, że do metody jest podawana tablica w której są pola i wartości (zrzut $_POST) i klasa zapisuje je w wybranej tablicyMySQL.


Czemu nie możesz zrealizować tego modyfikując klasę nadrzędną i dodając odwołanie do logowania?
Ewentualnie jeśli martwisz się Cross-cutting concern pomyśl nad użyciem AOP (chociaż pewnie to podejście odrzucisz - na początku będzie się wydawać że nie warto - ale nic bardziej mylnego).
Go to the top of the page
+Quote Post
drbane
post 23.07.2007, 15:16:51
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


To nie jest problem, z tym ze log musi wygladac tak:

Cytat
Zmiana ceny, 100 PLN
Dodanie nowego produktu, nazwa: PROSZEK DO PRANIA

Nie wiem skad mam wiedziec, ktore pole w formularzu bylo zmodyfikowane (tzn. teoretycznie moge porownac wczesniejsze dane z wprowadzonymi z formularza, ale ile to roboty - dziesiatki formularzy).
Mam maly metlik w glowie, poniewaz mam modyfikowac nie swoj kod. Poprostu szef zazyczyl sobie logowania zmian w ten sposob no i teraz co? Mam caly kod tak przekopac? A nad projektem pracuje jeszcze 2 obcokrajowcow i tez chlopcy za kazdym razem musza wywolywac logowanie...


--------------------
only Google!
Go to the top of the page
+Quote Post
UDAT
post 23.07.2007, 15:25:56
Post #6





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Chyba nie do końca rozumiem, jak masz nadklasę product:
  1. <?php
  2. class Product {
  3.  public static function addNewProduct( Product $p ) {
  4. logujDodane( $p );
  5. orginalna_logika_biznesowa();
  6.  }
  7.  
  8.  public static function modifyProduct (Product $p ) {
  9. $dane=pobierz_zapisane_dane(); 
  10. $porownanie = porównaj($dane, $_POST)
  11. loguj( $porownanie );
  12. orginalna_logika_biznesowa();
  13.  }
  14. }
  15. ?>


Bez większej ilości szczegółów nic nie można poradzić - nie można rozwiązać problemu którego się nie zna.
Go to the top of the page
+Quote Post
drbane
post 23.07.2007, 15:30:10
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


Oczywiscie rozumiem. To jest metoda ktorej wlasnie nie chcialbym uzyc. Chodzi mi o zautomatycowanie tego.
W tym systemie to wyglada tak:

Kod
Object
--insert
--save

Product extends Object
--insert
--save


---
edit:

W sumie mysle tak: jak mam linki w stylu "product.php?action=update&id=2" to zrobie mape linkow z nazwami. Tylko jak wykryc te cholerne zmiany w $_POST??

Ten post edytował drbane 23.07.2007, 15:34:39


--------------------
only Google!
Go to the top of the page
+Quote Post
skowron-line
post 23.07.2007, 15:43:00
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Ja zrobilem cos podobnego do firmy
i mam tak ze
zapisuje do bazy cala tablice $_POST
tablice $_GET
dziele url na strone glowna,
adresy IP

Wszystko to trzymam w bazie ktora raz w miesiacu zrzucam do pliku, niestety niemam jeszcze skryptu ktory by to ladnie wszystko dzielil zeby bylo to ladnie czytelne.

Dodatkowo zrobilem przegladarke tego co jest w baze znam ten program wiec mniej wiecej wiem co ludzie robia jak sobie spojrze na te tablice. Dzis zrobilem ladna wyszukiwarke w Ajaksie wiec skrypt jest jeszcze bardziej fajny.

Moze za pare dni uda sie napisac skrypt do dzielenia tych danych

Ten post edytował skowron-line 23.07.2007, 15:43:20


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
drbane
post 23.07.2007, 15:45:48
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


No wlasnie tak to mialem zrobione, ale szefuncio chce zeby to wszystko ladnie sie nazywalo (np. "Zmiana ceny: 40PLN").
Ale juz jestem na dobrej drodze:)


--------------------
only Google!
Go to the top of the page
+Quote Post
skowron-line
post 23.07.2007, 15:48:16
Post #10





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


no my mamy narazie to tylko na potrzeby administratorow systemu wiec szef chyba jeszcze o tym nie wie, moze i lepiej bo zacznie wymyslac a i tak ma dosyc ciekawe pomysly ktore skutecznie uniemozliwiaja mi wyjscie z pracy

Ten post edytował skowron-line 23.07.2007, 15:48:27


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 12:39