SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Symfony	

PHP OOP para gente grande
Luã de Souza	

‣    Sócio e desenvolvedor do grupo Tapronto	

‣    6 anos de PHP	

‣    www.lsouza.pro.br	

‣    www.tapronto.com.br	

‣    @hisamu
Symfony
‣    Mantido pela Sensio Labs (frança)	


‣    5 anos de projeto	


‣    Versão atual: 1.4	


‣    PHP 5.2.5+	


‣    www.symfony-project.org
‣    MVC	


‣    Desenvolvimento ágil	


‣    Código bem feito	


‣    DRY - Não reinvente a roda
Quem usa?
‣    Dailymotion	


‣    Yahoo! Answers	


‣    Yahoo! Bookmaks	


‣    Delicious
Features	

‣    MVC sólido e bem feito	

   ‣    Scaffolding	


‣    CLI - Linha de comando	

   ‣    Plugins	


‣    Routing	

                  ‣    I18N	


‣    Form API 	

                ‣    Cache	


‣    Debug	

                    ‣    Testes	


‣    Comunidade	

     Admin generator
Estrutura de Diretórios
Diretórios
YML
O modelo MVC
MVC
O Controller
Módulos
Actions
O Model
Doctrine	


‣    ORM	

‣    DQL - Doctrine Query Language	

‣    Abstração de banco	

‣    schema.yml
schema.yml
ORM
ORM
ORM + DQL
A View
Elementos da View	

‣    Layout	

‣    Templates	

‣    Partials	

‣    Components	

‣    Slots
Layout
Templates	




+	

      =
Partials e Components	


‣    Reutilização de código	


‣    Decomposição do
     template	


‣    Components: partial
     com lógica
CLI - Linha de Comando
CLI	


‣    Comandos executados via terminal	

‣    Automação de tarefas	

‣    Várias tasks úteis	

‣    Personalização de tasks
$ symfony generate:project meuProjeto	


$ symfony doctrine:build-model	


$ symfony cache:clear	


$ symfony plugin:install sfThumbnail	


$ symfony test:all
Routing
Rotas
Form API
Form API	

‣    Widgets	

‣    Validators	

‣    Reutilização de código	

‣    Organização	

‣    Cada Model possui seu form
Forms em uso
Debug
Debug Toolbar	


‣    Variáveis e configurações	

‣    Logs de execução	

‣    Logs de consultas ao banco	

‣    Tempo de requisições
Debug - Variáveis
Debug - View
Debug - Timers
Debug - Querys
Admin Generator
Admin Generator	


‣    Rapidez no desenvolvimento de backends	

‣    Interface pré-pronta	

‣    Simples	

‣    Apenas um arquivo de configuração
Admin Generator	


‣ $
  symfony doctrine:generate-admin frontend
 Autor	

‣ generator.yml
generator.yml
Admin - index
Admin - Novo
Admin - Edição
Scaffolding
Plugins
Plugins	

‣    sfDoctrineGuard	

‣    sfThumbnail	

‣    sfFormExtra	

‣    sfFeed2	

‣    1100+ plugins
Testes
Comunidade
Comunidade	


‣    Documentação do framework	

‣    #symfony @ irc.freenode.net	

‣    Google groups: #symfony-pt	

‣    www.symfonians.net
Perguntas? :)	


    contato@lsouza.pro.br	

#php-rio, #symfony-pt, @hisamu

Mais conteúdo relacionado

Mais procurados

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFXjesuinoPower
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012jesuinoPower
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraDiego Gabriel Cardoso
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Nelson Glauber Leal
 
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Leonardo Ferreira Leite
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidBruno Oliveira
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutosBruno Oliveira
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineSamanta Cicilia
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupPamela Canchanya
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2Andre Baltieri
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingSamanta Cicilia
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouqueceriMasters
 

Mais procurados (20)

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)
 
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em Android
 
GDG Angular 2
GDG Angular 2GDG Angular 2
GDG Angular 2
 
Criando aplicações java fx em minutos
Criando aplicações java fx em minutosCriando aplicações java fx em minutos
Criando aplicações java fx em minutos
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Fastlane
FastlaneFastlane
Fastlane
 
Times plataforma-tdc2020
Times plataforma-tdc2020Times plataforma-tdc2020
Times plataforma-tdc2020
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipeline
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA Meetup
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
 

Destaque

Imprensa livre novembro_2010_impressao
Imprensa livre novembro_2010_impressaoImprensa livre novembro_2010_impressao
Imprensa livre novembro_2010_impressaoLeonardo Gomez
 
JORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraí
JORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraíJORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraí
JORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraípaulo maia
 
Lula, um violinista da vida
Lula, um violinista da vidaLula, um violinista da vida
Lula, um violinista da vidaRenato Cardoso
 
Gutierreodontolife 53
Gutierreodontolife 53 Gutierreodontolife 53
Gutierreodontolife 53 Carlos Soares
 
Jornal estacao serra alta
Jornal estacao serra alta Jornal estacao serra alta
Jornal estacao serra alta divulgasbs
 
Manchas de Abuso Grupo Lua
Manchas de Abuso Grupo LuaManchas de Abuso Grupo Lua
Manchas de Abuso Grupo LuaCarlos Maciel
 
JRimum Community e o movimento Open Source - FLISOL - 10/04/2011
JRimum Community e o movimento Open Source - FLISOL - 10/04/2011JRimum Community e o movimento Open Source - FLISOL - 10/04/2011
JRimum Community e o movimento Open Source - FLISOL - 10/04/2011Gilmar PSL
 
Manual web20 Professores
Manual web20 ProfessoresManual web20 Professores
Manual web20 ProfessoresAfonso Reis
 
Copi La Gatita De Piedad Y Severino
Copi La Gatita De Piedad Y SeverinoCopi La Gatita De Piedad Y Severino
Copi La Gatita De Piedad Y SeverinoIsa Gon
 
06. hotelesy restaurantes(écija)
06.  hotelesy restaurantes(écija)06.  hotelesy restaurantes(écija)
06. hotelesy restaurantes(écija)fjgn1972
 
Redes Sociais - Logicbox
Redes Sociais - LogicboxRedes Sociais - Logicbox
Redes Sociais - LogicboxRomulo Lobo
 
Humanas hahahhahahahah
Humanas hahahhahahahahHumanas hahahhahahahah
Humanas hahahhahahahahDiiana Thomaz
 
Revista espirito livre_041_agosto2012
Revista espirito livre_041_agosto2012Revista espirito livre_041_agosto2012
Revista espirito livre_041_agosto2012Ruben Fischer
 

Destaque (20)

Imprensa livre novembro_2010_impressao
Imprensa livre novembro_2010_impressaoImprensa livre novembro_2010_impressao
Imprensa livre novembro_2010_impressao
 
UOL - Gestão de Marcas
UOL - Gestão de MarcasUOL - Gestão de Marcas
UOL - Gestão de Marcas
 
JORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraí
JORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraíJORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraí
JORNAL ZOADA BONITA MAIO 2011 o jornal de itaboraí
 
Lula, um violinista da vida
Lula, um violinista da vidaLula, um violinista da vida
Lula, um violinista da vida
 
Gutierreodontolife 53
Gutierreodontolife 53 Gutierreodontolife 53
Gutierreodontolife 53
 
Jornal estacao serra alta
Jornal estacao serra alta Jornal estacao serra alta
Jornal estacao serra alta
 
Manchas de Abuso Grupo Lua
Manchas de Abuso Grupo LuaManchas de Abuso Grupo Lua
Manchas de Abuso Grupo Lua
 
Caps
CapsCaps
Caps
 
JRimum Community e o movimento Open Source - FLISOL - 10/04/2011
JRimum Community e o movimento Open Source - FLISOL - 10/04/2011JRimum Community e o movimento Open Source - FLISOL - 10/04/2011
JRimum Community e o movimento Open Source - FLISOL - 10/04/2011
 
Manual web20 Professores
Manual web20 ProfessoresManual web20 Professores
Manual web20 Professores
 
Jornal digital 4620_qui_05032015
Jornal digital 4620_qui_05032015Jornal digital 4620_qui_05032015
Jornal digital 4620_qui_05032015
 
Copi La Gatita De Piedad Y Severino
Copi La Gatita De Piedad Y SeverinoCopi La Gatita De Piedad Y Severino
Copi La Gatita De Piedad Y Severino
 
06. hotelesy restaurantes(écija)
06.  hotelesy restaurantes(écija)06.  hotelesy restaurantes(écija)
06. hotelesy restaurantes(écija)
 
Redes Sociais - Logicbox
Redes Sociais - LogicboxRedes Sociais - Logicbox
Redes Sociais - Logicbox
 
Humanas hahahhahahahah
Humanas hahahhahahahahHumanas hahahhahahahah
Humanas hahahhahahahah
 
Lance 18072013 sp
Lance 18072013 spLance 18072013 sp
Lance 18072013 sp
 
Roupa seca manual
Roupa seca manualRoupa seca manual
Roupa seca manual
 
Revista espirito livre_041_agosto2012
Revista espirito livre_041_agosto2012Revista espirito livre_041_agosto2012
Revista espirito livre_041_agosto2012
 
Anexo 1
Anexo 1Anexo 1
Anexo 1
 
reforma
 				reforma 				reforma
reforma
 

Semelhante a Symfony: PHP OOP para projetos robustos e escaláveis

PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaMarcelo Fleury
 
Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Gabriel Machado
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web ServicesDorneles Treméa
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkJaime Neto
 
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Gabriel Machado
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Alex Guido
 

Semelhante a Symfony: PHP OOP para projetos robustos e escaláveis (20)

PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A Pena
 
Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon Framework
 
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
 
Python 08
Python 08Python 08
Python 08
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
PHP: Como não programar em POG
PHP: Como não programar em POGPHP: Como não programar em POG
PHP: Como não programar em POG
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.
 
Grails
GrailsGrails
Grails
 
BDD-NamoroOn
BDD-NamoroOnBDD-NamoroOn
BDD-NamoroOn
 
Enterprise php
Enterprise phpEnterprise php
Enterprise php
 

Symfony: PHP OOP para projetos robustos e escaláveis