SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 1 / 26
DRYing the Skeleton www.galvao.eti.br
DRYing
the Skeleton:
Reducing
code repetition
in
applications
Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP
Diretor da PHP Conference Brasil
Contribui para a tradução da documentação oficial
Atua como Zend Framework Evangelist para o ZTeam, da Zend.
20+ anos desenvolvendo sistemas e aplicações com interface web
15+ destes com PHP
7+ com Zend Framework
Palestrante em eventos nacionais e internacionais
Instrutor de cursos presenciais e a distância
Fundador e líder do GU PHPBR
Fundador* e membro do GU PHPRS
Site: http://www.galvao.eti.br/
http://people.php.net/galvao
Twitter: @galvao
Slides e Documentos: http://slideshare.net/ergalvao
https://speakerdeck.com/galvao
Github: http://github.com/galvao
Posts: https://medium.com/@galvao
Quem?!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 2 / 26
www.galvao.eti.brDRYing the Skeleton
Objetivo
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 3 / 26
www.galvao.eti.brDRYing the Skeleton
DRY > WET
ZF pode ser DRY
Disclaimer!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 4 / 26
www.galvao.eti.brDRYing the Skeleton
!
A Skeleton
é
Disclaimer!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 5 / 26
www.galvao.eti.brDRYing the Skeleton
!
A Skeleton
um erro
é
Disclaimer!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 6 / 26
www.galvao.eti.brDRYing the Skeleton
!
A Skeleton
um erro
um mau exemplo
é
Disclaimer!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 7 / 26
www.galvao.eti.brDRYing the Skeleton
!
A Skeleton
um erro
um mau exemplo
um código mal escrito
é
Disclaimer!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 8 / 26
www.galvao.eti.brDRYing the Skeleton
!
A Skeleton
um erro
um mau exemplo
um código mal escrito
um código para todos governaré
Fato!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 9 / 26
www.galvao.eti.brDRYing the Skeleton
A Skeleton
é
é
é
é
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 10 / 26
www.galvao.eti.brDRYing the Skeleton
A Skeleton
uma introdução
é
é
é
é
Fato!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 11 / 26
www.galvao.eti.brDRYing the Skeleton
A Skeleton
uma introdução
um exemplo de uso
é
é
é
é
Fato!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 12 / 26
www.galvao.eti.brDRYing the Skeleton
A Skeleton
uma introdução
um exemplo de uso
um tutorial
é
é
é
é
Fato!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 13 / 26
www.galvao.eti.brDRYing the Skeleton
A Skeleton
uma introdução
um exemplo de uso
um tutorial
um começoé
é
é
é
Fato!
Problemas...
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 14 / 26
www.galvao.eti.brDRYing the Skeleton
x “Incoerência”
x WET – WETWET – WETTT
x Relacionamentos?!
Incoerência
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 15 / 26
www.galvao.eti.brDRYing the Skeleton
http://framework.zend.com/manual/current/en/user-guide/database-and-models.html
Incoerência
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 16 / 26
www.galvao.eti.brDRYing the Skeleton
http://php.net/manual/en/types.comparisons.php
Expressão !empty !is_null
“” false true
null false false
true true true
false false true
1 true true
0 false true
“1” true true
“0” false true
“true” true true
“false” true true
WETWET
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 17 / 26
www.galvao.eti.brDRYing the Skeleton
http://framework.zend.com/manual/current/en/user-guide/database-and-models.html
WETWET
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 18 / 26
www.galvao.eti.brDRYing the Skeleton
http://framework.zend.com/manual/current/en/user-guide/database-and-models.html
11 Linhas de código-fonte x Entidade
WETWET
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 19 / 26
www.galvao.eti.brDRYing the Skeleton
http://framework.zend.com/manual/current/en/user-guide/database-and-models.html
11 Linhas de código-fonte x Entidade
Além de find/save/erase/etc… por Gateway...
Existem “programadores”...
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 20 / 26
www.galvao.eti.brDRYing the Skeleton
x “Incoerência”
x WET – WETWET – WETTT
x Relacionamentos?!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 21 / 26
… e PROGRAMADORES!
x “Incoerência”
x WET – WETWET – WETTT
x Relacionamentos?!
www.galvao.eti.brDRYing the Skeleton
Incoerência
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 22 / 26
www.galvao.eti.brDRYing the Skeleton
WETWET < DRY!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 23 / 26
www.galvao.eti.brDRYing the Skeleton
WETWET < DRY!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 24 / 26
www.galvao.eti.brDRYing the Skeleton
Relacionamentos FTW!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 25 / 26
www.galvao.eti.brDRYing the Skeleton
Obrigado!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 26 / 26
www.galvao.eti.brDRYing the Skeleton
? Dúvidas?
↓ Críticas?
↑ Elogios?!

Contenu connexe

Tendances

PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrer15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrerMichele Silva
 
Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010
Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010
Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010Flávio Lisboa
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019Cassio Santos
 
Zend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimoradoZend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimoradoFlávio Lisboa
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Flávio Lisboa
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
 
MVC com Zend Framework - PHP Conference Brasil 2010
MVC com Zend Framework - PHP Conference Brasil 2010MVC com Zend Framework - PHP Conference Brasil 2010
MVC com Zend Framework - PHP Conference Brasil 2010Flávio Lisboa
 
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
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...Rafael Jaques
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
Mini-curso codeIgniter - aula 1
Mini-curso codeIgniter - aula 1Mini-curso codeIgniter - aula 1
Mini-curso codeIgniter - aula 1lfernandomcj
 

Tendances (14)

PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrer15 coisas sobre php para saber antes de morrer
15 coisas sobre php para saber antes de morrer
 
Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010
Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010
Padrões de Projeto e Boas Práticas em PHP - PHP Conference Brasil 2010
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
 
Zend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimoradoZend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimorado
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
MVC com Zend Framework - PHP Conference Brasil 2010
MVC com Zend Framework - PHP Conference Brasil 2010MVC com Zend Framework - PHP Conference Brasil 2010
MVC com Zend Framework - PHP Conference Brasil 2010
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Mini-curso codeIgniter - aula 1
Mini-curso codeIgniter - aula 1Mini-curso codeIgniter - aula 1
Mini-curso codeIgniter - aula 1
 

En vedette

ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014Er Galvão Abbott
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Er Galvão Abbott
 
Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!Elton Minetto
 
Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1Laurence Body
 
Metodologias ágeis interativas
Metodologias ágeis interativasMetodologias ágeis interativas
Metodologias ágeis interativasElton Minetto
 
CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0Matheus Marabesi
 
6 questões que levam à inovação
6 questões que levam à inovação6 questões que levam à inovação
6 questões que levam à inovaçãoElton Minetto
 
De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016Elton Minetto
 

En vedette (9)

ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2
 
PHP e Open Source
PHP e Open SourcePHP e Open Source
PHP e Open Source
 
Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!Como manter a qualidade do seu projeto sem perder a sua sanidade!
Como manter a qualidade do seu projeto sem perder a sua sanidade!
 
Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1
 
Metodologias ágeis interativas
Metodologias ágeis interativasMetodologias ágeis interativas
Metodologias ágeis interativas
 
CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0
 
6 questões que levam à inovação
6 questões que levam à inovação6 questões que levam à inovação
6 questões que levam à inovação
 
De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016
 

Similaire à DRYing the Skeleton: Reducing code repetition in ZF2

Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoEr Galvão Abbott
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoEr Galvão Abbott
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPEr Galvão Abbott
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoEr Galvão Abbott
 
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012Cleverson Sacramento
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsinghugodiasneto
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre BootstrapIvo Calado
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsersGustavo Bellini Bigardi
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoEr Galvão Abbott
 
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensaSeja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensagarux
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorGustavo Bellini Bigardi
 
HTML5 e CSS3 : Por onde começar no mercado editorial ?
HTML5 e CSS3 : Por onde começar no mercado editorial ?HTML5 e CSS3 : Por onde começar no mercado editorial ?
HTML5 e CSS3 : Por onde começar no mercado editorial ?Fábio Flatschart
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
 

Similaire à DRYing the Skeleton: Reducing code repetition in ZF2 (20)

Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
Apresentacao frameworks
Apresentacao frameworksApresentacao frameworks
Apresentacao frameworks
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com isso
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalização
 
Top 10 OWASP com PHP
Top 10 OWASP com PHPTop 10 OWASP com PHP
Top 10 OWASP com PHP
 
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsing
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre Bootstrap
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard Barros
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderoso
 
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensaSeja um Perl Core Hacker - é (muito) mais fácil do que você pensa
Seja um Perl Core Hacker - é (muito) mais fácil do que você pensa
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com Blazor
 
HTML5 e CSS3 : Por onde começar no mercado editorial ?
HTML5 e CSS3 : Por onde começar no mercado editorial ?HTML5 e CSS3 : Por onde começar no mercado editorial ?
HTML5 e CSS3 : Por onde começar no mercado editorial ?
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 

Plus de Er Galvão Abbott

Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2Er Galvão Abbott
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e ComoEr Galvão Abbott
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkEr Galvão Abbott
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaEr Galvão Abbott
 
Implementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPImplementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPEr Galvão Abbott
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoEr Galvão Abbott
 
PHP e Segurança - Uma união possível
PHP e Segurança - Uma união possívelPHP e Segurança - Uma união possível
PHP e Segurança - Uma união possívelEr Galvão Abbott
 

Plus de Er Galvão Abbott (10)

Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e Como
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend Framework
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
PHPBR TestFest
PHPBR TestFestPHPBR TestFest
PHPBR TestFest
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de Cinza
 
Aplicacoes Web Com AJAX
Aplicacoes Web Com AJAXAplicacoes Web Com AJAX
Aplicacoes Web Com AJAX
 
Implementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPImplementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHP
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
 
PHP e Segurança - Uma união possível
PHP e Segurança - Uma união possívelPHP e Segurança - Uma união possível
PHP e Segurança - Uma união possível
 

DRYing the Skeleton: Reducing code repetition in ZF2

  • 1. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 1 / 26 DRYing the Skeleton www.galvao.eti.br DRYing the Skeleton: Reducing code repetition in applications
  • 2. Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP Diretor da PHP Conference Brasil Contribui para a tradução da documentação oficial Atua como Zend Framework Evangelist para o ZTeam, da Zend. 20+ anos desenvolvendo sistemas e aplicações com interface web 15+ destes com PHP 7+ com Zend Framework Palestrante em eventos nacionais e internacionais Instrutor de cursos presenciais e a distância Fundador e líder do GU PHPBR Fundador* e membro do GU PHPRS Site: http://www.galvao.eti.br/ http://people.php.net/galvao Twitter: @galvao Slides e Documentos: http://slideshare.net/ergalvao https://speakerdeck.com/galvao Github: http://github.com/galvao Posts: https://medium.com/@galvao Quem?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 2 / 26 www.galvao.eti.brDRYing the Skeleton
  • 3. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 3 / 26 www.galvao.eti.brDRYing the Skeleton DRY > WET ZF pode ser DRY
  • 4. Disclaimer! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 4 / 26 www.galvao.eti.brDRYing the Skeleton ! A Skeleton é
  • 5. Disclaimer! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 5 / 26 www.galvao.eti.brDRYing the Skeleton ! A Skeleton um erro é
  • 6. Disclaimer! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 6 / 26 www.galvao.eti.brDRYing the Skeleton ! A Skeleton um erro um mau exemplo é
  • 7. Disclaimer! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 7 / 26 www.galvao.eti.brDRYing the Skeleton ! A Skeleton um erro um mau exemplo um código mal escrito é
  • 8. Disclaimer! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 8 / 26 www.galvao.eti.brDRYing the Skeleton ! A Skeleton um erro um mau exemplo um código mal escrito um código para todos governaré
  • 9. Fato! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 9 / 26 www.galvao.eti.brDRYing the Skeleton A Skeleton é é é é
  • 10. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 10 / 26 www.galvao.eti.brDRYing the Skeleton A Skeleton uma introdução é é é é Fato!
  • 11. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 11 / 26 www.galvao.eti.brDRYing the Skeleton A Skeleton uma introdução um exemplo de uso é é é é Fato!
  • 12. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 12 / 26 www.galvao.eti.brDRYing the Skeleton A Skeleton uma introdução um exemplo de uso um tutorial é é é é Fato!
  • 13. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 13 / 26 www.galvao.eti.brDRYing the Skeleton A Skeleton uma introdução um exemplo de uso um tutorial um começoé é é é Fato!
  • 14. Problemas... CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 14 / 26 www.galvao.eti.brDRYing the Skeleton x “Incoerência” x WET – WETWET – WETTT x Relacionamentos?!
  • 15. Incoerência CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 15 / 26 www.galvao.eti.brDRYing the Skeleton http://framework.zend.com/manual/current/en/user-guide/database-and-models.html
  • 16. Incoerência CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 16 / 26 www.galvao.eti.brDRYing the Skeleton http://php.net/manual/en/types.comparisons.php Expressão !empty !is_null “” false true null false false true true true false false true 1 true true 0 false true “1” true true “0” false true “true” true true “false” true true
  • 17. WETWET CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 17 / 26 www.galvao.eti.brDRYing the Skeleton http://framework.zend.com/manual/current/en/user-guide/database-and-models.html
  • 18. WETWET CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 18 / 26 www.galvao.eti.brDRYing the Skeleton http://framework.zend.com/manual/current/en/user-guide/database-and-models.html 11 Linhas de código-fonte x Entidade
  • 19. WETWET CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 19 / 26 www.galvao.eti.brDRYing the Skeleton http://framework.zend.com/manual/current/en/user-guide/database-and-models.html 11 Linhas de código-fonte x Entidade Além de find/save/erase/etc… por Gateway...
  • 20. Existem “programadores”... CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 20 / 26 www.galvao.eti.brDRYing the Skeleton x “Incoerência” x WET – WETWET – WETTT x Relacionamentos?!
  • 21. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 21 / 26 … e PROGRAMADORES! x “Incoerência” x WET – WETWET – WETTT x Relacionamentos?! www.galvao.eti.brDRYing the Skeleton
  • 22. Incoerência CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 22 / 26 www.galvao.eti.brDRYing the Skeleton
  • 23. WETWET < DRY! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 23 / 26 www.galvao.eti.brDRYing the Skeleton
  • 24. WETWET < DRY! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 24 / 26 www.galvao.eti.brDRYing the Skeleton
  • 25. Relacionamentos FTW! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 25 / 26 www.galvao.eti.brDRYing the Skeleton
  • 26. Obrigado! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/15 - 26 / 26 www.galvao.eti.brDRYing the Skeleton ? Dúvidas? ↓ Críticas? ↑ Elogios?!