Newsletter

Grupa MagazynyInternetowe

Online: 445

Wyszukiwarka

Bazy danych

Propel - operacje na plikach

Uwagi do pierwszego przykładu

Błąd PHP 5.1

Jeśli korzystamy z PHP w wersji 5.1, to Propel nie będzie tworzył plików w folderze buildconf. W takiej sytuacji plik pilkarze-conf.php należy utworzyć ręcznie. Rozwiązaniem problemu jest aktualizacja PHP do wersji 5.2.

Konto i hasło

W plikach:

build.properties
runtime-conf.xml
pilkarze.sql

należy wprowadzić nazwę konta użytkownika bazy danych oraz hasło. W przykładzie pilkarze są nimi:

[+]
 
 
Pobierz
1. konto: pilkadm
2. hasło: secretpass

Hasło i konto występują w pliku pilkarze.sql:

[+]
 
 
Pobierz
1. ...
2. TO
3. pilkadm@localhost
4. IDENTIFIED BY
5. 'secretpass';
6. ...

w pliku build.properties:

[+]
 
 
Pobierz
1. ...
2. propel.database.url = mysqli://pilkadm:
3. secretpass@localhost/pilkarze
4. ...

oraz w pliku runtime-conf.php:

[+]
 
 
Pobierz
1. ...
2. <username>pilkadm</username>
3. <password>secretpass</password>
4. ...

Oczywiście we wszystkich trzech plikach należy użyć identycznego konta.

Nazwa modelu

Podczas zapisywania bazy danych utworzonej programem DBDesigner nadawana jest nazwa modelu. Domyślnie nazwa ta jest identyczna jak nazwa pliku. Na przykład, jeśli model zapiszemy w pliku studenci.xml, to DBDesigner nazwie ten model studenci.

Nazwę modelu można sprawdzić opcją Options . Model options. Jeśli plik zapiszemy pod nazwą model.xml, to należy pamiętać o tym, by przy użyciu opcji Options . Model options zmienić nazwę modelu. W przeciwnym razie trzeba nazwać bazę danych model.

Nazewnictwo tabel

Zwróćmy uwagę na nazewnictwo tabel i kolumn w bazie danych. Nazwy klas generowanych przez Propela odpowiadają nazwom tabel w bazie danych. Jeśli w bazie danych występuje tabela pilkarz, to Propel wygeneruje klasę Pilkarz i zapisze ją w pliku Pilkarz.php. Podobnie, dla tabeli klient wygenerowana zostanie klasa Klient zapisana w pliku Klient.php.

Jeśli tabele bazy danych będą nazwane w mianowniku liczby pojedynczej, wówczas skrypty PHP korzystające z klas generowanych przez Propel będą najczytelniejsze:

Tabela o nazwie: samochod
Wygenerowana klasa: Samochod
Klasa zapisana w pliku: Samochod.php

Skrypt:

[+]
 
 
Pobierz
1. $s = new Samochod();
2. ...
3. Tabela o nazwie: ksiazka
4. Wygenerowana klasa: Ksiazka
5. Klasa zapisana w pliku: Ksiazka.php
6. Skrypt:
7. $k = new Ksiazka();
8. ...

Metody dostępu do pól

Dla każdej kolumny tabeli tworzone są metody dostępu do pól. Tabela pilkarz zawiera kolumny: imie i nazwisko. Propel generuje dla nich metody setImie() oraz setNazwisko():

[+]
 
 
Pobierz
1. $pilkarz = new Pilkarz();
2. $pilkarz->setImie('Grzegorz');
3. $pilkarz->setNazwisko('Bronowicki');

Tabela pilkarz zawiera klucz obcy klub_id. Dla kluczy obcych Propel również generuje metody dostępu, w tym przypadku setKlub(). Nazwa metody pochodzi od nazwy tabeli, z której pochodzi klucz obcy. Parametrem metody setKlub() jest obiekt klasy Klub:

[+]
 
 
Pobierz
1. $klub = new Klub();
2. $klub->setNazwa('Legia Warszawa');
3. ...
4. $pilkarz->setKlub($klub);
5. Zapisanie w bazie danych piłkarza powoduje
6. automatyczne zapisanie klubu:
7. $pilkarz->save();

Podsumowanie

Dla każdej tabeli bazy danych tworzona jest jedna klasa zawierająca odpowiedni zestaw metod.

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ć)