Aplicativos em PHP/FrameWorks/Symfony

Predefinição:Info/Software

Symfony é um framework web escrito em PHP que segue o paradigma MVC (model-view-controller). Disponível sob a Licença MIT, Symfony é um Software livre.

Os criadores do Symfony afirmam que a curva de aprendizagem necessária para seu uso proficiente está reduzida a menos de um dia. Ele é projetado para permitir que os desenvolvedores apliquem princípios ágeis do desenvolvimento (tais como DRY, KISS ou XP) e foquem na regras de negócio sem necessitar escrever muitos arquivos de configuração XML, comuns nos frameworks atuais.

Symfony ainda tem como objetivo construir aplicações robustas em contexto empresarial, e dar aos desenvolvedores controle total sobre a configuração: da estrutura de diretórios às bibliotecas externas, quase tudo pode ser personalizado. Para atingir os guidelines de desenvolvimento das empresas, o framework é empacotado com ferramentas adicionais para ajudar os desenvolvedores nos testes, depuração e documentação dos projetos.

Symfony é usado pelo serviço de perguntas e respostas Askeet e por muito mais aplicações, incluindo o Yahoo Bookmarks, aplicação com mais de 20 milhões de usuários.

Referências

Leitura recomendada

  • Potencier, Fabien and Zaninotto, François. (2007). The Definitive Guide to Symfony. Apress. ISBN 1590597869.

Ligações externas


24 Tutoriais do Symfony

Ótimos tutoriais. O do dia 1 está traduzido também para português.

http://www.symfony-project.com/askeet

Link para o PDF de todos os tutoriais - http://www.symfony-project.com/downloads/askeet/askeet.pdf

O Download do Projeto resultante dos 24 tutoriais - http://www.symfony-project.com/downloads/askeet_release_1_0.tgz


Learn symfony: a Beginner's Tutorial

http://www.sitepoint.com/print/symfony-beginners-tutorial

Código fonte do tutorial - http://www.sitepoint.com/examples/symfony/sandbox_final.tgz


How to setup a symfony project in Trustudio or PHPEclipse

http://trac.symfony-project.com/trac/wiki/SymfonyWithEclipseBasedEditors


Meu primeiro projeto com Symfony

Resumo do tutorial "My first symfony project" do site oficial.

- Certifique-se de que está usando PHP5

- Ative o suporte a SQLite no php.ini, descomentando a "extensão extension=php_sqlite.dll"

- Fazer o download do sf_sandbox de http://www.symfony-project.com/get/sf_sandbox.tgz e descompactar no diretório web

- Abra no navegador http://localhost/sf_sandbox/web/index.php para testar.

- Inicializar o modelo de dados:

Edite o script sf_sandbox/config/schema.yml e cole as linhas abaixo

propel:

 weblog_post:
   _attributes: { phpName: Post }
   id:
   title:       varchar(255)
   excerpt:     longvarchar
   body:        longvarchar
   created_at:
 weblog_comment:
   _attributes: { phpName: Comment }
   id:
   post_id:
   author:      varchar(255)
   email:       varchar(255)
   body:        longvarchar
   created_at:
   

Caso queira traduzir, fique à vontade com exceção de created_at.

Este script define a estrutura de duas tabelas que serão criadas com o SGBD SQLite.

Obs.: Para facilitar adicione o diretório do seu PHP ao path.

Obs2.: Se usando o Xampp 1.6.2 e receber mensagens de erro ao executar o comando php, então comente a linha com a extensão ";extension=php_svn.dll" no arquivo xampp\php\php.ini.

Salve o arquivo e abra o prompt de comando no diretório sf_sandbox e execute:

php symfony propel-build-model

Esteja certo de estar no raiz do diretório "sf_sandbox". Este comando criará algumas classes no diretório sf_sandbox/lib/model. Estas classes permitem acesso ao banco sem se digitar uma linha de código SQL. Symfony usará a biblioteca Propel para isso. Chamaremos estes objetos de model.


Agora entre o seguinte comando:

php symfony propel-build-sql

Um arquivo lib.model.schema.sql será criado em sf_sandbox/data/sql/. Podemos criar um banco em outro SGBD mas por default o projeto sf_sandbox deve usar o arquivo sandbox.db em sf_sandbox/data.

Para criar a estrutura das tabelas baseadas no arquivo SQL, entre:

php symfony propel-insert-sql


Criando a Aplicação

O symfony agora criará uma estrutura básica de um CRUD da aplicação que poderá ser customizado.

php symfony propel-generate-crud frontend post Post php symfony propel-generate-crud frontend comment Comment php symfony clear-cache

Agora temos dois módulos (pos e comment) que permitirão que você manipule os objetos das classes Post e Comment. Um módulo geralmente representa uma página ou um grupo de páginas com uso similar. Seus novos módulos estão localizados em sf_sandbox/apps/frontend/modules/ e podem ser acessados através das URLs:

http://localhost/sf_sandbox/web/frontend_dev.php/post

http://localhost/sf_sandbox/web/frontend_dev.php/comment

Veja que não digitamos nenhuma linha de código PHP, nem SQL nem sequer trabalhamos com SGBD.

Claro que aqui tem somente o esqueleto mas mesmo assim a ferramenta já nos deu ganho de produtividade.