Development

Documentation/pl_PL/book/1.0/08-Inside-the-Model-Layer (diff)

You must first sign up to be able to contribute.

Changes between Version 3 and Version 4 of Documentation/pl_PL/book/1.0/08-Inside-the-Model-Layer

Show
Ignore:
Author:
Artur.Kotyrba (IP: 195.234.40.230)
Timestamp:
07/24/07 15:08:30 (10 years ago)
Comment:

Dodano sekcję "Przykład schematu bazy danych"

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/pl_PL/book/1.0/08-Inside-the-Model-Layer

    v3 v4  
    6060 
    6161 
    62 Symfony's Database Schema 
     62Schemat bazy danych w symfony 
    6363------------------------- 
     64Aby stworzyć obiektowy model danych do użycia z symfony musisz najpierw dokonać translacji całego relacyjnego modelu bazy danych na obiektowy. Aby tego dokonać ORM potrzebuje opisu modelu relacyjnego - czyli schematu bazy danych. W schemacie definiujesz tabele, relacje między nimi oraz kolumny i ich charakterystykę. 
     65 
     66Symfony używa do opisu schematów formatu YAML. Plik *schema.yml* musi być umieszczony w katalogu *myproject/config/*. 
     67 
     68>**NOTE** 
     69>Symfony może także używać natywnego formatu Propel'a - XML'a, co zostanie opisane w dalszej części rozdziału. 
     70 
    6471###Przykład schematu bazy danych 
    65 ###Podstawowa składnia schematów bazy danych 
     72 
     73Jak dokonać translacji struktury bazy danych na schemat rozumiany przez ORM? Najłatwiej pokazać to na przykładzie. Wyobraź sobie, że masz bazę danych *blog* z dwoma tabelami: *blog_article*(artykuły) i *blog_comment*(komentarze) o strukturze pokazanej na Schemacie 8-1. 
     74 
     75Schemat 8-1 - Schemat bazy danych *blog* 
     76 
     77<img src='http://www.symfony-project.com/images/book/trunk/F0801.png' alt='nie można otworzyć obrazka'/> 
     78 
     79Dla powyższego schematu plik *schema.yml* powinien wyglądać tak jak na Listingu 8-3. 
     80 
     81Listing 8-3 - Plik *schema.yml* 
     82 
     83    propel: 
     84      blog_article: 
     85        _attributes: { phpName: Article } 
     86        id: 
     87        title:       varchar(255) 
     88        content:     longvarchar 
     89        created_at: 
     90      blog_comment: 
     91        _attributes: { phpName: Comment } 
     92        id: 
     93        article_id: 
     94        author:      varchar(255) 
     95        content:     longvarchar 
     96        created_at: 
     97 
     98Zauważ, że nazwa bazy danych (*blog*) nie pojawia się w pliku *schema.xml*. Zamiast tego baza danych jest opisana pod nazwą połączenia (w tym wypadku *propel*). Jest tak ponieważ ustawienia połączenia mogą się różnić między środowiskami, w których działa aplikacja. Na przykład, uruchamiając aplikację w środowisku deweloperskim możesz korzystać z deweloperskiej wersji bazy danych (np. *blog_dev*), jednak nadal z tą samą strukturą jak w środowisku produkcyjnym. Ustawienia połączeń są umieszczone w pliku *databases.yml*, opisanym w późniejszej części rodziału - **Połączenie z bazą danych**. Schemat nie zawiera szczegółów połączenia, jedynie odwołanie do nazwy połączenia, którym zarządza warstwa abstrakcji bazodanowej. 
     99 
     100[cdn.] 
     101 
     102###Podstawowa składnia schematów bazy danych  
    66103Klasy Modelu 
    67104------------