Symfony Framework - Introdução

Este artigo, apresenta uma breve introdução ao Framework Symfony, importante ferramenta para
desenvolvimento ágil na linguagem PHP.

[ Hits: 20.702 ]

Por: Fernando Dutra Neres em 12/03/2012


Gerando um simples CRUD (Create, Read, Update e Delete)



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.
Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalação
   3. Gerando um simples CRUD (Create, Read, Update e Delete)
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Usando cache na classe Fast Template

Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl

Formantando nomes com caracteres especiais em PHP

Tags automáticas em URLs com a classe urlmatch da PHP

PHP 5 - Compilando com as melhores práticas com PHP 4

  
Comentários
[1] Comentário enviado por nandodutra em 13/03/2012 - 09:37h

Olá, percebi que após a revisão dos moderadores o código do arquivo <b><i>/etc/apache2/httpd.conf</i></b> ficou desconfigurado, segue abaixo o código correto:

<VirtualHost *:80>
ServerName localhost
DocumentRoot "/var/www"
<Directory "/var/www">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName vol.local
DocumentRoot "/var/www/vol/web"
DirectoryIndex index.php
<Directory "/var/www/vol/web">
AllowOverride All
Allow from All
</Directory>

Alias /sf /var/www/vol/lib/vendor/symfony/data/web/sf
<Directory "/var/www/vol/lib/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>

[2] Comentário enviado por removido em 16/03/2012 - 19:10h

Corrigido.

A Tag usada na formatação HTML para destacar o Script, causou conflito com os sinais '<' e '>'.


Quando houver problemas, reporte à Moderação.

Um abraço, Fernando.

[3] Comentário enviado por albertguedes em 17/03/2012 - 02:22h

Eu fiquei interessado no Symphony, mas uso a tempo o Zend.
É possível dizer quais vantagens e desvantagens sobre o Zend, ou pelo menos em qual ocasião o Symphoni é preferível ao Zend ?

[4] Comentário enviado por nandodutra em 17/03/2012 - 08:38h

albertguedes, gosto muito do Symfony devido a facilidade de aprendizado, comunidade ativa e colaborativa, documentação clara e concisa. infelizmente não posso te dizer as vantagens com relação ao Zend, isto por que nunca o usei, até já tentei, mas como na época precisava usar um Framework PHP com urgência acabei optando por usar o CakePHP, que possui uma curva de aprendizagem menor, então há mais ou menos um ano migrei para o Synfony e não me arrependo. Caso tenha alguma dúvida estou a disposição para ajudar.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts