Newsletter

Grupa MagazynyInternetowe

Online: 898

Wyszukiwarka

Bazy danych

Propel - operacje na plikach

Propel - operacje na plikach Seria artykułów poświęconych bazom danych pokazywała w jaki sposób korzystać z programu DBDesigner. Aplikacja Propel, przedstawiona poprzednio, generuje automatycznie klasy aktywnych rekordów. Teraz opiszę w jaki sposób Propelem generować kod PHP dla modelu bazy danych przygotowanego DBDesignerem.

Współpraca aplikacji DBDesigner i Propel

Aplikacja DBDesigner służy do wizualnego projektowania baz danych. Za pomocą kilku prostych narzędzi tworzymy model ERD, definiując tabele oraz relacje. Wynikiem pracy w programie DBDesigner jest model bazy danych zapisany w formacie XML.

Propel jest narzędziem, które na podstawie modelu bazy danych opisanego w języku XML generuje klasy PHP5 zapewniające dostęp do bazy danych. Plik wejściowy Propela zawiera m.in. elementy database, table, column.

Jeśli chcemy korzystać z DBDesignera w połączeniu z Propelem, należy plik XML zapisany przez DBDesignera przekształcić do formatu wykorzystywanego przez aplikację Propel. Zadanie to realizuje transformacja XSLT opracowana przez Jonathana Grahama i dostępna pod adresem: http://blog.tooleshed.com/?p=6. Do wykonania konwersji w PHP niezbędne są dwa pliki:

[+]
 
 
Pobierz
1. dbd2propel.xsl
2. transform.php

Dzięki wykorzystaniu transformacji dbd2propel. xsl możemy dla bazy danych zaprojektowanej w programie DBDesigner wygenerować Propelem klasy aktywnych rekordów.

Przekształcenie formatu XML DBDesignera do formatu Propela

Procedura konwersji modelu wykonanego programem DBDesigner do formatu Propela:

  • Przygotować model bazy danych programem DBDesigner. Wynik pracy zapisać w pliku model.xml.
  • Umieścić w jednym folderze trzy pliki: wykonany przed chwilą model.xml oraz dbd2propel.xsl i transform.php.
  • Odwiedzić przeglądarką skrypt transform.php.

W folderze pojawi się plik schema.xml, który opisuje model bazy danych w formacie wymaganym przez aplikację Propel.

Procedurę konwersji można uprościć przygotowując plik transform.bat o treści:

 
 
 
Pobierz
php -f transform.php

Plik ten należy umieścić w tym samym folderze co plik transform.php. Wykonanie przekształcenia sprowadzi się do uruchomienia pliku transform.bat. Dodatkową korzyścią stosowania plików wsadowych .bat jest to, że skrypty PHP mogą być w ten sposób uruchamiane w dowolnym folderze, a nie tylko w htdocs.

Przykład: piłkarze

Zadanie

Dany jest model bazy danych pilkarze. Model ten jest zapisany w pliku pilkarze.xml. Wykorzystując aplikacje DBDesigner oraz Propel należy przygotować skrypt SQL tworzący podaną bazę danych oraz napisać skrypt PHP, który wstawi do bazy danych rekordy:

 
 
 
Pobierz
Grzegorz Bronowicki, Legia Warszawa

Seria artykułów poświęconych bazom danych, które były opublikowane na łamach MI w ubiegłym roku, pokazywała w jaki sposób korzystać z programu DBDesigner. Aplikacja Propel, którą przedstawiłem w ubiegłym miesiącu, generuje automatycznie klasy aktywnych rekordów. Teraz opiszę w jaki sposób Propelem generować kod PHP dla modelu bazy danych przygotowanego DBDesignerem.

Krok 1. Transformacja DBDesigner -> Propel

Najpierw zmieniamy nazwę pliku pilkarze.xml na model.xml. Następnie wykonujemy transformację z formatu DBDesignera do formatu Propela. Na podstawie pliku model.xml otrzymamy plik schema.xml.

Krok 2. Generowanie kodu SQL i klas PHP

Teraz trzeba przygotować dane dla Propela. Pierwszym plikiem jest schema.xml otrzymany w poprzednim kroku jako wynik konwersji pliku model.xml. Ponadto należy przygotować plik build.properties o zawartości:

[+]
 
 
Pobierz
 1. propel.project = pilkarze
 2. propel.database = mysql
 3. propel.database.url = mysqli://pilkadm:
 4. secretpass@localhost/pilkarze
 5. propel.targetPackage = pilkarze
 6. propel.addGenericAccessors = true
 7. propel.addGenericMutators = true
 8. oraz plik runtime-conf.xml o zawartości:
 9. <?xml version="1.0" encoding="iso-8859-1"?>
10. <config>
11. <propel>
12. <datasources default="pilkarze">
13. <datasource id="pilkarze">
14. <adapter>mysql</adapter>
15. <connection>
16. <phptype>mysqli</phptype>
17. <hostspec>localhost</hostspec>
18. <database>pilkarze</database>
19. <username>pilkadm</username>
20. <password>secretpass</password>
21. </connection>
22. </datasource>
23. </datasources>
24. </propel>
25. </config>

Trzy pliki schema.xml, build.properties oraz runtime-conf.xml umieszczamy w jednym folderze. W folderze tym należy umieścić także plik generuj.bat o zawartości:

 
 
 
Pobierz
c:phppropelgeneratorbinpropel-gen.bat.

Teraz folder z danymi dla Propela zawiera cztery pliki. Można przystąpić do generowania aktywnych rekordów. Uruchamiamy plik generuj.bat.

Po wykonaniu pliku wsadowego generuj.bat, w folderze bieżącym pojawi się folder build zawierający pliki wygenerowane przez Propela.

23 stycznia 2008

Powiązane publikacje

Propel - porady jak rozwiązać podstawowe problemy

Propel - porady jak rozwiązać podstawowe problemy

Aplikacje internetowe framedb do Propela i DBD Designer

Aplikacje internetowe framedb do Propela i DBD Designer

Aplikacje internetowe: Dostęp do danych

Aplikacje internetowe: Dostęp do danych

 
Skomentuj
ten artykuł

Brak komentarzy

Kod obrazkowy
(Kliknij, aby zmienić)