• Save
Sfcon 2012
Upcoming SlideShare
Loading in...5
×
 

Sfcon 2012

on

  • 900 views

Apresentação 'Inversão de Controle e Injeção de Dependência no Symfony 2 - E faça-se a luz!' no SfCon 2012

Apresentação 'Inversão de Controle e Injeção de Dependência no Symfony 2 - E faça-se a luz!' no SfCon 2012

Statistics

Views

Total Views
900
Views on SlideShare
898
Embed Views
2

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 2

https://si0.twimg.com 1
http://www.sfexception.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sfcon 2012 Sfcon 2012 Presentation Transcript

  • Inversão de Controle e Injeção de Dependência no Symfony 2 E faça-se a luz! Julho 2012
  • Quem sou eu…• Welington Veiga – Formado em Ciência da Computação pela UFJF – Programador Java e PHP – Trabalho com PHP há mais de 4 anos – Atualmente trabalho na • JEE, Struts, Hibernate – Freelancer • Groovy, PHP, Symfony, JPA, Spring
  • Do que estamos Falando?
  • Reutilização? Não Acredito.
  • Inversão de Controle
  • O Controle padrão
  • O Controle PadrãoSuponha que nossa aplição aplicaçãoprecisa de um Cofre:• Ele Precisa Registrar Tudo o que Contém• Precisa logar toda vez que seu conteúdo for alterado• Precisamos de um sistema de segurança
  • Problemas
  • Problemas
  • Inversão de Controle
  • E Daí?• Envio de Logs por e-mail• Tipos de Criptografia • Diferentes Implementações de criptografias• Exigir confirmação via WebService antes de abrir o cofre• Avisar a empresa de segurança caso haja erro
  • Dúvidas?
  • Injeção de Dependência
  • O Container
  • Como?Dependência Dependente Tranca Cofre Container Logger Configurações XML, YAML, PHP
  • Um Exemplo
  • E Daí?• Por que não utilizar um Singleton?• Por que, então, não utilizar um Factory?• Isso não é lento?• Eu não preciso reutilizar código, não vale o esforço
  • Duvidas?
  • Configurando a Injeção de Dependências
  • Mais sobre DI no Sf2Existem 2 tipos de Injeção dedependência:1. Constructor Injection2. Setter Injection
  • O Diabo está nos detalhes!
  • Escopo• Request• Prototype
  • Importe outros arquivos!• Organização do projeto• Reaproveitamento• Diferente poder de expressão • YAML , XML e PHP
  • Constantes PHP
  • Quanta Configuração…• Desacoplamento de dependências• Torna claro o objetivo de cada classe• Testabilidade• Separação de Responsabilidades• Facilidade a troca de implementações• Reduz a complexidade
  • Sinta o poder em suas maos…
  • Exemplos Reais Cache
  • Banco de Dados
  • Template Engine
  • •Email•Logs•Sistema de Login•Estatisticas de Usuários•Gerador de Relatórios•Gerenciador de Sessão•Manipulador de Arquivos•Leitor de XML
  • Duvidas?
  • Anti-Patterns “Não existe almoço grátis”• Dependência Cíclica• Propagação de Dependências• Construtor de muitos argumentos• Dependência do Container• Utilizar o Container nos testes unitários
  • Então…. É só isso 
  • Mantenha contato!Facebook http://www.facebook.com/welington.veigaTwitter @welingtonveigaGtalk welington.veiga@gmail.comSkype Welington.veiga
  • Obrigado!