Forms, API Reflection, Tworzenie Obiektów do obsługi ogólnej |
Forms, API Reflection, Tworzenie Obiektów do obsługi ogólnej |
25.12.2006, 13:21:15
Post
#1
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Witam,
To jest mój pierwszy post w php Pro i nie wiem czy pasuje, jeśli nie, to przepraszam moderatorów. Wiem, że wiele frameworków stosuje "podobne" rozwiązania, lecz ja chce stworzyć ten "systemik" w celach ćwiczebnych i opanowania obiektowości. Przejdę wieć do właściwej treści: Zastanawiam się jak połączyć bazę danych, formularze i nie natrudzić się przy tym. Moim zdaniem to bezsensu jest, że za każdym razem robimy oddzielny formularz do każdej tabeli w bazie. Chce osiągać ten efekt: skrypt tworzy formularz na podstawie tabeli - gdzie zawarte są też elementy walidacji. Ale jest problem. Jeśli zapisze te wszystkie właściwości pól w bazie danych to ją przecież zarżnę! Przy np: rejestracji potrzebne będą 3 połączenia z bazą danych. Jedno z pobraniem właściwości formularzy, drugie w czasie wysyłania i walidacji, trzecie w czasie wysyłania danych rejestracji. Gdzie zapisać te właściwości tabel? Można by zrobić tak, że skrypt cacheuje właściwości tabeli i zapisuje je np. w pliku - ale w jakim formacie najlepiej? SQLite? Zwykłym plikowym? Potem - po stworzeniu formularza i wysłaniu przez użytkowników - Reflecion ma przechytywać te dane i na podstawie danych walidacji - sprawdzać dane i zapisywać do odpowiedniej tabeli o prawidłowych wartościach. To wiem jak rozwiązać (mam php Solutions ) Jak rozwiązać ten problem przechowywania? A może użyć jeszcze do tego AJAXa, który by wysyłał dane rejestracji? Co do walidacji nie chce używać JavaScript bo jakoś zaufania nie mam -------------------- |
|
|
25.12.2006, 13:43:38
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
serializuj dane
|
|
|
25.12.2006, 14:23:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
No dobrze mam te serializowane dane, ale gdzie je trzymać, żeby było wydajnie?
-------------------- |
|
|
25.12.2006, 15:39:06
Post
#4
|
|
Grupa: Zarejestrowani Postów: 800 Pomógł: 0 Dołączył: 26.11.2005 Skąd: Nowy Sącz Ostrzeżenie: (0%) |
Jeśli te dane nie muszą być bezpieczne zwykłe pliki. Jeśli nie, to zabezpieczasz folder .htaccess z plikami .php.
-------------------- Jah Music Is On My Mind !
|
|
|
25.12.2006, 20:21:52
Post
#5
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
Może tak:
|
|
|
25.12.2006, 21:56:37
Post
#6
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Rzeczywiście, XML będzie tu chyba najlepszym rozwiązanem
Tylko takie pytanie: Jak będzie logiczniej - Najpierw tworzyć tabele i je opisywać w XML czy najpierw stworzyć schemat XML i na jego postawie tworzyć tabele? Chyba to drugie rozwiązanie jest lepsze..? Ten post edytował Master Miko 25.12.2006, 21:56:49 -------------------- |
|
|
26.12.2006, 07:25:39
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Rzeczywiście, XML będzie tu chyba najlepszym rozwiązanem Tylko takie pytanie: Jak będzie logiczniej - Najpierw tworzyć tabele i je opisywać w XML czy najpierw stworzyć schemat XML i na jego postawie tworzyć tabele? Chyba to drugie rozwiązanie jest lepsze..? Elastyczność wymagałaby, by ten Wizzard formularzy korzystał już z istniejących tabel. Bo dziwne wydaje mi się, tworzenie tabeli specjalnie pod niego. Poza tym nic nie stoi na przeszkodzie, by opis xml'owy był na tyle dobry, by to działało w obie strony. |
|
|
26.12.2006, 12:11:21
Post
#8
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Tzn o tworzenie tabel w oparciu o XML chodziło mi o coś takiego, że tworzę sobie z 6 plików XML, w każdym opisuję tabele - właściwości, typy pól itp itd (razem z walidacją) puszam skrypt automatyzujący - który tworzy tabele. A w odwrotną stronę musiałbym się więcej natrudzić.
TABELA->XML - najpierw samemu trzeba stworzyć tabelę, użyć skryptu imortującego właściwości tabeli do xml a potem je opisywać (mogą być wyjątki, specjalne pola itp). Więc tak naprawdę 2 czynności :/ XML->TABELA - wszystkie wyjątki są JUŻ opisane razem z kolumnami tabeli - bez problemowo uruchamia się skrypt i tworzy tabele w bazie danych... -------------------- |
|
|
26.12.2006, 16:18:23
Post
#9
|
|
Grupa: Zarejestrowani Postów: 169 Pomógł: 0 Dołączył: 27.01.2006 Ostrzeżenie: (0%) |
a nie prosciej tak.
1. Tworzysz tabele wraz z polami w bazie danych 2. Klasa generuje formularz np po wpisaniu makeform(tabela) :] budowe tabeli wyciagac np za pomoca DESCRIBE TABLE Ten post edytował Dandelion 26.12.2006, 16:26:57 |
|
|
26.12.2006, 21:43:16
Post
#10
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Super... po czym zapycham cały mysql pojawiającymi się non stop describe... przeczytaj mój pierwszy post.
-------------------- |
|
|
26.12.2006, 21:58:01
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Hmmm, wybacz, ale kolega napisał, że formularze budowane za pomocą komendy makeform(). Więc zakładam, że docelowo dzieję się to tylko raz, dane są cacheowane i Wizzardstamtąd pobiera już dane o budowie tabel,
|
|
|
26.12.2006, 21:59:48
Post
#12
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Nie wiem... zdanie "Klasa generuje formularz np po wpisaniu makeform(tabela)" zrozumiałem, że za każdym razem robi ten describe... ponieważ "generuje formularz" oznacza generowanie formularza na stronie. Może niech kolega to potwierdzi bądź zaprzeczy
-------------------- |
|
|
26.12.2006, 22:00:14
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
edit:
wróć, żadnej "budowie tabel". Powinna nastąpić kompilacja do wynikowego kodu php/HTML |
|
|
26.12.2006, 22:03:07
Post
#14
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
No ale czy nie ma się większej kontroli gdy cały opis tabeli jest skonstruowany w pliku XML i na jego postawie tworzy się tabelę? Wtedy odrazu wszystko jest skonfigurowane, nie trzeba robić describe'ów?
Chociaż problem może pojawić się w czasie zmianie kolumn ponieważ jak zmienię XML to będzie trzeba wygenerować znowu tabelę... chyba że napisać jakiś super algorytm... a tego chyba nie chce -------------------- |
|
|
26.12.2006, 22:11:49
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
A mi się wydaje, że przekombinowujesz. Projekt takiego Wizzarda powinien być łatwo-dołączalny do istniejących już aplikacji. Czyli z gotową bazą danych.
Pomysł z plikami XML wydaje mi się chybiony, w sytuacji gdy tak jak proponujesz miałby być za każdym razem parsowane i generować formularz w locie. Oczywiście, nie jest to zły pomysł, bo łatwiej na plikach XML działać. Na początek radziłbym Tobie napisać silnik czytający taki XML i parsujący go do gotowych plików formularza, a dopiero potem dodać funkcję tworzenia pliku XML z gotowych tabel w BD. Cytat Chociaż problem może pojawić się w czasie zmianie kolumn ponieważ jak zmienię XML to będzie trzeba wygenerować znowu tabelę... chyba że napisać jakiś super algorytm... a tego chyba nie chce tongue.gif Dlatego zaprojektuj również w jaki sposób taki Wizzard powinien generować kod formularzy, żeby w razie zmiany struktury tabel w Bazie Danych, tylko podmienić odpowiednie pliki, tymi nowo-skompilowanymi. Ten post edytował LBO 26.12.2006, 22:14:28 |
|
|
26.12.2006, 22:25:53
Post
#16
|
|
Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Ok dzięki! To już wiem jak się za to powoli zabierać
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 23.09.2024 - 00:44 |