Connect with us

Czego poszukujesz?

Internet Maker

Aplikacje internetowe framedb do Propela i DBD Designer

Aplikacja umożliwiająca automatyzację pracy z aplikacjami Propel i DBDesigner

Opisywane już na naszych łamach narzędzia
DBDesigner oraz Propel znacznie upraszczają
implementację aplikacji internetowej
stosującej bazę danych. W celu dalszej automatyzacji
współpracy DBDesignera i Propela opracowałem
skrypt dbframe. Dzięki dbframe utworzenie
bazy danych oraz wygenerowanie aktywnych
rekordów ORM sprowadza się do edycji jednego
pliku konfiguracyjnego oraz uruchomienia skryptu
wsadowego run.bat.

Program DBDesigner służy do wizualnego
tworzenia modelu bazy danych. Wykorzystując
metodę \”przeciągnij i upuść\” oraz okna dialogowe,
ustalamy strukturę bazy danych: tabele, kolumny
oraz relacje. Druga aplikacja, Propel, generuje na
podstawie odpowiedniego pliku XML tzw. aktywne
rekordy – klasy PHP, które umożliwiają łatwy
dostęp do bazy danych.

DBDesigner i Propel mogą współpracować.
Umożliwia to opracowana przez Jonathana Grahama
transformacja XSLT. Ponieważ często wykorzystuję
te narzędzia, opracowałem skrypt dbframe,
który automatyzuje całe zadanie.

dbframe – instrukcja użytkownika

Zadania skryptu dbframe

Skrypt dbframe wykonuje następujące zadania:

  • konwertuje format modelu bazy danych opracowanego
    w programie DBDesigner do formatu
    aplikacji Propel,
  • uruchamia aplikację Propel i generuje obiekty
    ORM dla zadanego modelu,
  • tworzy na serwerze MySQL bazę danych odpowiadającą
    zadanemu modelowi,
  • tworzy na serwerze MySQL konto dostępu do
    nowej bazy danych.

Pliki wejściowe

Plikami wejściowymi skryptu dbframe są:

  • input/conf.ini
  • model bazy danych np. input/db.xml

Plik conf.ini zawiera informacje konfiguracyjne:

;database
database = dbframe
username = dbframeadmin
password = dbframepass
filename = db.xml
;MySQL root
root = root
rootpassword = AX1BY2CZ3

Rola parametrów jest następująca:

  • database – nazwa tworzonej bazy danych
  • username – konto dostępu do tworzonej bazy danych
  • password – hasło konta username
  • filename – nazwa pliku XML opracowanego w DBDesigner
  • root – nazwa konta administratora serwera MySQL
  • rootpassword – hasło konta root serwera MySQL

Wyniki

Skrypt run.bat utworzy plik {stala}create-db.bat{/stala}, pliki
w folderze {stala}output/propel{/stala} oraz bazę danych.
Plik {stala}create-db.bat{/stala} służy do utworzenia nowej,
pustej bazy danych na serwerze MySQL. Folder
output/propel zawiera wyniki pracy generatora
Propel. Na serwerze MySQL zostanie następnie
utworzona pusta baza danych o podanej nazwie
(w przykładzie: dbframe) oraz konto dostępu
{stala}dbframeadmin{/stala} o haśle {stala}dbframepass{/stala}.

UWAGA! Jeśli baza o podanej nazwie istniała,
to została usunięta. W jej miejsce tworzona jest
nowa baza danych, odpowiadająca modelowi
zawartemu w pliku model.xml.

Przykłady

Analiza pliku log

Baza danych przedstawiona na rysunku 1
przechowuje informacje o frazach, które spowodowały
wizyty w naszym serwisie za pośrednictwem
wyszukiwarki Google. Korzystając z programu
DBDesigner, narysuj ten model (z rysunku 1).

Zapisz go do pliku o nazwie {stala}analiza-log.xml{/stala} (plik
ten należy umieścić w folderze {stala}input/{/stala}).

Następnie w pliku {stala}conf.ini{/stala} wprowadź następujące
dane:

;database
database = log
username = logadmin
password = logpass
filename = analiza-log.xml
;MySQL root
root = root
rootpassword = AX1BY2CZ3

Oczywiście parametr rootpassword musi być
zgodny z hasłem administratora na twoim serwerze
MySQL.

Uruchom teraz skrypt run.bat. W folderze
{stala}output/propel/build/classes{/stala} powstanie folder log/.
Znajdziesz w nim klasy wygenerowane przez Propel.
Na serwerze MySQL pojawi się baza danych
o nazwie log (rysunek 2).

Pamiętaj, by przed uruchomieniem skryptu run.bat uruchomić serwer MySQL.

Angaże

Przygotuj model bazy danych przedstawiony na
rysunku 3. Baza ta zawiera informacje o pracownikach
uniwersytetu i podziale zajęć dydaktycznych.
Przygotowany projekt zapisz do pliku {stala}angaze.xml{/stala}.

W pliku conf.ini wprowadź dane:

;database
database = angaze
username = angazeadmin
password = angazepass
filename = angaze.xml

Po uruchomieniu skryptu run.bat, na serwerze
MySQL pojawi się baza danych o nazwie
angaze (rysunek 4). Klasy ORM modelu angaze.
xml znajdziesz w folderze {stala}output/propel/build/classes/angaze{/stala}.

Artykuły

Przygotuj bazę danych widoczną na rysunku
5.

Baza przechowuje informacje o artykułach
publikowanych na łamach czasopisma Magazyn
INTERNET. Przygotowany projekt zapisz do pliku
artykuly-mi.xml.

W pliku conf.ini wprowadź dane:

database = artykulymi
username = amiadmin
password = amipass
filename = artykuly-mi.xml

Po uruchomieniu skryptu run.bat, na serwerze
MySQL pojawi się baza danych o nazwie artykulymi
(rysunek 6). Klasy ORM modelu artykulymi.xml
znajdziesz w folderze {stala}output/propel/build/classes/artykulymi{/stala}.

Dane o płytach i wykonawcach

Wykonaj model bazy danych {stala}rock.xml{/stala} widoczny
na rysunku 7.

W pliku conf.ini wprowadź dane:

database = rock
username = rockadmin
password = rockpass
filename = rock.xml

Po uruchomieniu skryptu run.bat na serwerze
MySQL pojawi się baza danych rock (rysunek 8).

Klasy ORM modelu rock.xml znajdziesz w folderze
{stala}output/propel/build/classes/rock{/stala}.

Dostosowywanie

Skrypt dbframe działa w oparciu o szablony
Smarty. Wszystkie szablony znajdziesz w folderze
{stala}app/templates{/stala}. W każdym szablonie dostępna jest
tablica asocjacyjna {stala}$conf{/stala} o indeksach database,
username, password, root oraz rootpassword:

$conf[\'database\']
$conf[\'username\']
$conf[\'password\']
$conf[\'root\']
$conf[\'rootpassword\']

Zatem w plikach .tpl możesz korzystać ze
zmiennych:

{$conf.database}
{$conf.username}
{$conf.password}
{$conf.root}
{$conf.rootpassword}

W ten sposób możesz dostosować kod SQL
skryptu tworzącego pustą bazę danych, konfigurację
Propela oraz plik {stala}create-db.bat{/stala} odpowiedzialny
za tworzenie pustej bazy danych. Listing 1 zawiera
szablon odpowiedzialny za tworzenie pustej bazy
danych.

SET NAMES utf8 COLLATE utf8_polish_ci;
DROP DATABASE IF EXISTS {$conf.database};
CREATE DATABASE
{$conf.database}
DEFAULT CHARACTER SET
utf8 COLLATE utf8_polish_ci;
GRANT
INSERT, DELETE, UPDATE, SELECT
ON
{$conf.database}.*
TO
{$conf.username}@localhost
IDENTIFIED BY
\'{$conf.password}\';
FLUSH PRIVILEGES;
USE {$conf.database};

Może cię też zainteresować

Internet Maker

Baz danych to podstawa nowoczesnych witryn. Zrozumienie zasady ich działania daje nowe spojrzenie na sieć. A w dodatku jest proste.

Internet Maker

Po przeczytaniu poprzednich części publikacji wiesz już jak zainstalować Apache oraz doinstalować do niego PHP. Duet ten nie jest jednak wystarczający dla spełnienia podstawowych potrzeb tworzenia współczesnych aplikacji...

Newsy

Szkolenia dla administratorów baz danych i programistów, którzy chcą kontrolować i zarządzać MySQL oraz doskonalić swoje umiejętności PHP, zorganizuje po raz pierwszy w Polsce Compedium CE.

Internet Maker

Istotną rolę w funkcjonowaniu współczesnych serwisów internetowych odgrywają bazy danych. Usprawniają one proces zarządzania informacjami udostępnianymi w ramach witryn.