Com finalidade didática, vamos criar um simples CRUD (Create, Read, Update e Delete) para uma aplicação de cadastro de livros e autores.
Modelo do banco de dados:
1) Crie um banco de dados no
MySQL chamado "vol" e rode o SQL abaixo para criar as tabelas (autor, e livro).
-- -----------------------------------------------------
-- Table `vol`.`autor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `vol`.`autor` (
`id` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `vol`.`livro`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `vol`.`livro` (
`id` INT NOT NULL AUTO_INCREMENT ,
`autor_id` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_livro_autor` (`autor_id` ASC) ,
CONSTRAINT `fk_livro_autor`
FOREIGN KEY (`autor_id` )
REFERENCES `vol`.`autor` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
2) Configure o banco de dados recém criado no Project criado na página anterior:
cd /var/www/vol
$ ./symfony configure:database "mysql:host=localhost;dbname=vol" usuario senha
3) Gere o esquema 'yml' a partir do banco de dados "vol":
./symfony doctrine:build-schema
4) Com o nosso esquema do banco de dados gerado, vamos gerar as classes de (model, forms, filters):
./symfony doctrine:build --all --and-load --no-confirmation
5) Agora vamos gerar dois módulos na aplicação "frontend", um chamado "livro" e outro chamado "auto":
./symfony doctrine:generate-module --with-show --non-verbose-templates frontend livro Livro
$ ./symfony doctrine:generate-module --with-show --non-verbose-templates frontend autor Autor
Já temos um CRUD pronto para a tabela "livro" e um para a tabela "auto", acesse as URLs abaixo, para ver ambos funcionando:
Como você pode perceber, sem digitar uma única linha de PHP, já podemos: Cadastrar, Editar, Visualizar e Deletar registro nas tabelas "livro
e autor".
Conclusão
Este artigo, foi apenas uma breve introdução para demostrar o poder e simplicidade do Symfony. Com apenas alguns comandos no terminal,
geramos uma aplicação CRUD.
Pretendo, em outros artigos, demostrar como personalizar formulários, configurar detalhes das aplicações em arquivos YML, criar área
administrativa protegida por usuário e senha, e etc.