This post comes from the first version of this blog.
Please send me an email if anything needs an update. Thanks!
W codziennej pracy używamy wielu narzędzi wspomagających naszą pracę przy tworzeniu stron internetowych i wykonywaniu innych usług z tym związanych. Poczynając od IDE, poprzez różnego rodzaju narzędzia konsolowe, aż po wtyczki w przeglądarkach internetowych jesteśmy zależni od wielu tysięcy linii kodu, dzięki którym nasze życie jest o wiele łatwiejsze, niż w przypadku, kiedy musielibyśmy wykonać tą pracę sami. W dzisiejszym wpisie chciałbym pokazać jeden z niedawno poznanych sposobów na ułatwienie sobie życia podczas pracy z biblioteką Doctrine i frameworkiem symfony.
Fotografia: jimw, CC-BY.
MySQL Workbench: Generowanie plików YAML dla Doctrine i symfony.
Aby móc wykorzystać opisywaną dzisiaj funkcjonalność, musimy zaopatrzyć się w dwie rzeczy:- program MySQL Workbench, aktualnie w wersji 5.2.33, sam korzystam z 5.2.31,
- nierozwijana już, ale działająca bez problemów wtyczka mysql-workbench-doctrine-plugin.
Teraz czas na wykorzystanie wtyczki do pracy. Otwieramy wybrany diagram, w moim przypadku jest to:
Wybieramy z menu pozycje: “Plugins > Catalog > Doctrine Export 0.4.1: Copy Generated Doctrine Schema To Clipboard”. I… już!
Wynikowy plik YAML prezentuje się następująco:
---
detect_relations: true
options:
collate: latin1_swedish_ci
charset: latin1
type: InnoDB
post:
tableName: posts
columns:
id:
type: integer(4)
primary: true
notnull: true
name:
type: string(255)
content:
type: clob(65535)
category:
type: integer(4)
relations:
category:
class: category
local: category
foreign: id
foreignAlias: posts
indexes:
FK_Post_Category:
fields: [category]
category:
tableName: categories
columns:
id:
type: integer(4)
primary: true
notnull: true
name:
type: string(255)
postTag:
tableName: post_tags
columns:
post:
type: integer(4)
primary: true
notnull: true
tag:
type: integer(4)
primary: true
notnull: true
relations:
tag:
class: tag
local: tag
foreign: id
foreignAlias: post_tags
post:
class: post
local: post
foreign: id
foreignAlias: post_tags
indexes:
FK_Post_Tag:
fields: [tag]
FK_Tag_Post:
fields: [post]
tag:
tableName: tags
columns:
id:
type: integer(4)
primary: true
notnull: true
name:
type: string(255)
Jak widać, zostały uwzględnione zarówno dane poszczególnych tabel, jak i relacje pomiędzy nimi. Oczywiście symfony obsługuje w swoim narzędziu konsolowym generowanie plików YAML bezpośrednio ze schematu bazy danych [symfony doctrine-build-schema], aczkolwiek pokazany dzisiaj przeze mnie materiał może służyć jako “inna droga” do osiągnięcia tego samego efektu.
Być może znacie inne wygodne i wydajne sposoby na poprawę pracy z podobnymi narzędziami / bibliotekami / frameworkami - jeśli tak, czekam na Wasze komentarze. Tymczasem życzę wszystkiego dobrego i do zobaczenia w kolejnym wpisie!