Jeśli korzystasz z PHP w wersji 5.1, to Propel nie będzie tworzył plików w folderze build\conf. W takiej sytuacji, plik pilkarze-conf.php będziesz musiał utworzyć ręcznie. Rozwiązaniem problemu jest aktualizacja PHP do wersji 5.2.
W plikach:
...brak dostępu...
należy wprowadzić nazwę konta użytkownika bazy danych oraz hasło. W przykładzie pilkarze są nimi:
...brak dostępu...
Hasło i konto występują w pliku pilkarze.sql:
...brak dostępu...
w pliku build.properties:
...brak dostępu...
oraz w pliku runtime-conf.php:
...brak dostępu...
Oczywiście we wszystkich trzech plikach należy użyć identycznego konta.
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 zapiszesz w pliku studenci.xml, to DBDesigner nazwie ten model studenci. Nazwę modelu możesz sprawdzić opcją Options → Model options (rysunek 5).
Jeśli plik zapisujesz pod nazwą model.xml, to pamiętaj o tym, by przy użyciu opcji Options → Model options zmienić nazwę modelu. W przeciwnym razie będziesz musiał nazwać bazę danych model.
Rysunek 7. Domyślna nazwa modelu jest tworzona na bazie nazwy pliku
Zwróć uwagę na nazewnictwo tabel i kolumn w bazie danych. Nazwy klas generowanych przez Propel-a 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:
...brak dostępu...
Dla każdej kolumny tabeli tworzone są metody dostępu do pól. Tabela pilkarz posiada kolumny: imie i nazwisko. Propel generuje dla nich metody setImie() oraz setNazwisko():
...brak dostępu...
Tabela pilkarz posiada 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:
...brak dostępu...
Zapisanie w bazie danych piłkarza powoduje automatyczne zapisanie klubu:
...brak dostępu...
Współpracę programów DBDesigner i Propel podsumowuje rysunek 6. Dla każdej tabeli bazy danych tworzona jest jedna klasa posiadająca odpowiedni zestaw metod.
Rysunek 8. Baza danych pilkarze: podsumowanie