+6

Introdução ao framework Symfony

criado por Patrick Espake em 04/07/2008 12:57pm
Um framework racionaliza o desenvolvimento de muitos padrões empregados para um determinado fim, acrescenta estrutura ao código, levando o programador a escrever melhor, mais legível e um código mais sustentável. Em última análise um framework torna a programação mais fácil, uma vez que transforma um pacote de complexas operações em simples afirmações.

symfony é um framework completo projetado para otimizar o desenvolvimento de aplicações web, através de várias características. Para começar ele separa um aplicativo web das regras do negócio, lógica e apresentação. Ele contém diversas ferramentas e classes que visam reduzir o tempo de desenvolvimento de uma complexa aplicação web. Além disso, ele automatiza tarefas comuns, para que o desenvolvedor possa se concentrar inteiramente nas especifidades da aplicação. O resultado final dessas vantagens é que não há necessidade de reinventar a roda a cada vez que um novo aplicativo web é construído.

O symfony foi escrito inteiramente em PHP 5. Ele foi testado em vários projetos do mundo real, é na verdade, no uso de alta demanda em sites de negócio. Ele é compatível com a maioria das bases de dados disponíveis, incluindo o MySQL, PostgreSQL, Oracle e Microsoft SQL Server. Ele roda em plataformas Windows e *nix. Vamos começar uma análise mais atenta às suas características.

Características symfony

O symfony foi construído a fim de cumprir os seguintes requisitos:

  • Fácil instalação e configuração em mais plataformas (garantido para trabalhar no padrão *nix e Windows)

  • Mecanismo de banco de dados independente

  • Simples de usar, na maior parte dos casos e suficientemente flexível para se adaptar aos casos complexos

  • Baseado na premissa de convenção sobre a configuração, o desenvolvedor precisa configurar apenas o convencional

  • Compatível com a maioria das melhores práticas web e padrões de design

  • Código legível, documentação e fácil manutenção

  • Fácil de estender, permitindo a integração com outras bibliotecas


Automatização de Projetos Web Características

A maior parte das características comuns de um projeto web são automatizadas no symfony, segue:

  • Camada de internacionalização permite a tradução dos dados e da interface, bem como conteúdo (localization)

  • A camada de apresentação utiliza templates e layouts que podem ser construídos pelos designers HTML sem qualquer conhecimento do framework. Ajudantes para reduzir a quantidade de código na camada de apresentação e escrever encapsulado de grandes porções de código em simples funções.

  • Automatização para trabalhar com formulários, validação e repovoamento, e isso garante uma boa qualidade dos dados na bases de dados e uma melhor experiência do usuário

  • Protege a aplicação contra ataques via dados corrompidos

  • Sistema de cache com a funcionalidade de reduzir o uso de banda larga e carga do servidor

  • Autenticação e credenciais, para facilitar a criação de seções restritas e gestão de segurança do usuário

  • Roteamento inteligente e URLS amigáveis fazem parte da interface e mecanismo amigáveis de busca

  • Paginação de resultados são mais fáceis, graças a automatizadores de paginação, seleção e filtragem

  • Plug-ins proporcionam um elevado nível de extensibilidade

  • Interações Ajax são fáceis de implementar, graças aos ajudantes e efeitos JavaScript


Ambiente de Desenvolvimento Ferramentas


Para cumprir os requisitos das empresas que possuem suas próprias orientações, regras de codificação e gestão do projeto, o symfony pode ser totalmente personalizado. Ele fornece, por padrão, vários ambientes de desenvolvimento, com várias ferramentas que automatização tarefas comuns de engenharia de software.

  • Ferramentas de geração de código, com apenas um clique é possível gerar interfaces administrativas

  • Testes de unidade e testes funcionais, o framework fornece ferramentas para permitir testes na fase de desenvolvimento

  • Painel de debugação acelera a depuração, apresentado todas as informações que o desenvolvedor precisa sobre a página que está trabalhando

  • A interface de linha de comando automatização a implantação da aplicação entre dois servidores

  • Configurações de mudança são possíveis e eficazes

  • Sistema de log fornece ao desenvolvedor detalhes completos sobre as atividades da aplicação


Quem fez o symfony e por quê?

A primeira versão do symfony foi lançada em Outubro de 2005 pelo fundador do projeto Fabien Potencier. Fabien é o CEO da Sensio (http://www.sensio.com), uma agência web francesa muito conhecida pelos seus pontos de vista inovadores sobre desenvolvimento web.

Já em 2003, Fabien passou algum tempo adquirindo conhecimentos sobre os instrumentos de desenvolvimento open source para aplicações web em PHP. Ele descobriu que nenhuma satisfazia os requisitos descritos anteriormente. Quando o PHP 5 foi liberado, ele decidiu que os instrumentos tinha atingido uma fase madura e suficiente para ser integrado em um framework.

Após o sucesso usando symfony em alguns projetos, Fabien decidiu divulgá-lo sob uma licença open source. Fez para doar o trabalho do projeto para a comunidade e beneficiar outros desenvolvedores.

Para o symfony ser um êxito o projeto fonte foi aberto e foi necessário dispor uma documentação extensiva, em Inglês, para aumentar a taxa de desenvolvedores. Fabien pediu para o seu empregado François Zaninotto, verificar o código e escrever um livro on-line sobre o assunto. Demorou um pouco, quando o projeto foi tornado público, o que foi documentado foi suficiente para atrair numerosos colaboradores.

Comunidade do symfony

Logo que o site do symfony foi lançado (http://www.symfony-project.org), muitos desenvolvedores de todo o mundo baixaram e instalaram o framework, leram a documentação online e construiram sua primeira aplicação com o symfony.

Frameworks web foram ficando populares nessa época, bem como a necessidade de um framework completo em PHP foi elevado. O symfony ofereceu uma solução atraente devido às suas impressionantes qualidade de código e significativa documentação, duas grandes vantagens sobre os demais frameworks. Os colaboradores logo começaram a propor correções, melhorias e documentação.

Com código fonte aberto e sistema de repositório ofereceram uma maneira fácil de contribuir com o projeto. Fabien ainda é o principal coordenador do tronco do repositório e garante a qualidade do código.

Hoje, o fórum do symfony, lista de discussão e IRC, oferecem um grande apoio para tirar dúvidas. O wiki ajuda a documentação crescer e o número de aplicações conhecidas usando symfony aumenta, em média, cinco por semana.

symfony é para mim?

Se você é um perito em PHP 5 ou um iniciante em aplicações web, você será capaz de usar o symfony. O principal fator para decidir se deve ou não usa-lo é o tamanho do seu projeto.

Se você quiser desenvolver um site simples com cinco a dez páginas, acesso limitado a um banco de dados e não obrigação de garantir o seu desempenho ou fornecer documentação, você deve usar PHP sozinho. Você não iria ganhar muito mais a partir do uso de um framework, usando orientação a objetos ou um modelo MVC provavelmente só iria abrandar o seu processo de desenvolvimento.

Por outro lado, se você precisar desenvolver aplicações web mais complexas, com pesadas lógica de negócio, PHP por si só não é suficiente. Se você planeja em manter ou aumentar o seu código no futuro, você vai precisar do seu código leve, de fácil leitura e eficaz. Se você quiser usar os mais recentes avanços na interação com Ajax, em uma forma intuitiva, você não pode simplesmente escrever centenas de linhas de Javascript. Se você quiser ter divertimento e desenvolver rapidamente, em todos esses casos o symfony é para você.

Objetivo desse Artigo

Nesse artigo quis mostrar algumas informações sobre frameworks e o symfony. Eu acredito que mais de 90% dos desenvolvedores web não usam nenhum tipo de framework, isso é um grande problema, atualmente existe a demanda de desenvolvimento de aplicações que exigem muito e muitos desenvolvedores não estão acompanhado a evolução. O mercado está pedido profissionais com essa características. A web cada vez mais está direcionando para olhares de usuários mais criteriosos e ansiosos por serviços de ótima qualidade. Meu objetivo é ajudar você a ver novos horizontes.

Nos próximos artigos falaremos sobre alguns conceitos fundamentais do symfony e na sequência vamos criar uma aplicação do zero usando symfony.

Patrick Espake
http://www.patrickespake.com

Comentários:

Mostrando 1 - 6 de 6 comentários
Daniel Mendes disse:
Muito bom o Symfony Framework, eu o utilizo em meu ambiente de trabalho. Recomendo fortemente, principalmente quem já veio do ASP.NET MVC ( meu caso ). No começo é só questão de se acostumar com ele, depois é mel na chupeta
04/04/2015 7:15pm (~1 ano atrás)

Joel Wallis disse:
Uso o CodeIgniter a um tempo, e já andei testando o Symfony. Ainda não tive tempo para usá-lo em algum projeto, mas de antemão sei que ele é muito bom, com ótimos recursos de automatização de tarefas!
05/06/2009 3:39am (~7 anos atrás)

Dam disse:
Bom artigo.
20/11/2008 4:21am (~8 anos atrás)

E aí Patrick, estou começando a estudar o symfony...
Vou começar a desenvolver um software de grande porte, e preciso de um framework que me possibilite isso... Procurei vários, dentre os que mais me chamaram atenção foram o CakePHP e o CodeIgniter.

Vamos ver, instalei o ubuntu numa maquina virtual aqui para configurar o symfony... Já lí metade daquele manual deles... tudo em ingles, dá um nó na cabeça!! Esta funcionando, só falta começar a fazer o sistema mesmo hehe

[]
10/09/2008 1:14pm (~8 anos atrás)

Patrick, a introdução foi muito bem escrita. Aguardo os próximos artigos!
21/07/2008 9:11am (~8 anos atrás)

André Taiar disse:
O título conveniente para esse artigo seria "APRESENTAÇÃO ao framework Symfony".
05/07/2008 6:57am (~8 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)