Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [zend framework] mini-scaffolding :), Jak to zrobic
MarcinTryka
post 7.02.2008, 03:06:03
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 31.03.2007

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


Witam.
Od jakiegoś czasu piszę panele administracyjne pod ZF. Chciałbym to bardziej zautomatyzować (zmniejszyć czas podpięcia danego panela pod podobną witrynę). Mam np. bazę produktów -np motocykli:

id, // auto_inctrement, primary key
lp, // numer porządkowy / kolejność
kategoria // integer, odnosi sie do kategorii, foregin key
marka // varchar
poj silnika // integer
kolor // varchar
opis // text

No i chciałbym to podpiąć pod bazę z np. samochodami, mam dodatkowo np.:

liczba drzwi //int
skrocony_opis // mediumtext ("nagloewk")

Muszę zmieniać:
1) bazę danych
2) formularz
3) walidację danych
4) zapis do bazy
5) odczyt z bazy (edycje, przeglądanie w panelu)

Moim marzeniem byłoby zrobienie czegoś na wzór scaffolding (dostępny np. w CakePHP). Polegałoby to na tym, że:
1) pola id, lp, kategoria są wspólne dla każdego z paneli - one są zaimplementowane ręcznie
2) pozostałe kolumny tabeli automatycznie odczytuje ZF z bazy i tworzy dla nich formularz:
BOOL - checkbox
integer,varchar - input
mediumtext -textarea
text -textarea+edytorek

Ponadto dodatkowo automatycznie dostosowuje funkcje zapisu/odczytu z bazy, oraz walidację.
Dzięki temu dopasowanie panela do konkretnej strony sprowadzało by się do utworzenia odpowiedniej tabeli.
Moje pytania:
a) jak w ZF pobrać nazwy kolumn w tabeli
cool.gif jak pobrać typy danych (VARCHAR, INTEGER, TEXT ...)

Pozdrawiam, Marcin
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post 7.02.2008, 08:21:25
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Od razu zaznaczam, że nie znam ZF i nie wiem czy taka możliwość nie została już wbudowana.
Może użyj po prostu:
  1. DESCRIBE tabela;

i wybierz te dane, które Cię interesują.
Go to the top of the page
+Quote Post
Sabistik
post 7.02.2008, 12:15:44
Post #3


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


To nie jest takie trudne obecnie. Dzięki Zend_Form i Zend_Db_Table można łatwo zrobić coś w tym stylu. np jakąś metodę getForm:

  1. <?php
  2. $info = $this->info();
  3. $metadata = $info['metadata'];
  4.  
  5. foreach ($metadata as $columnName => $columnDetails) {}
  6. ?>


W forechu tworzysz po kolei elementy formularza i na koniec metody zwracasz całego forma. W $columnDetails['DATA_TYPE'] masz typ danych.
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: 14.08.2025 - 02:02