SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
O BOLO AINDA SERVE MUITA GENTE
1
OPA!
Sou o Waldemar Neto
Me siga na deepweb @waldemarnt
blog: http://walde.co/
2
UM POUCO SOBRE MIM
▸ Gaucho de Pelotas
▸ Desenvolvedor a mais de 6 anos
▸ Focado em web/api’s
▸ Palestrante sempre que possível
▸ Colaborador do iMasters e mantenho meu próprio
blog
▸ Colaborador open-source
3
ONDE EU TRABALHO
Pelotas
Earlang
Argentina
CONRAD CAINE
4
Munich
O CAKEPHP E EU
Desde a versão 1.x e enquanto for feliz
Um pouco da história
NA VIDA CAKEDC
▸ Projetos próprios
▸ Apis
▸ Sites institucionais
▸ Sistemas
▸ Estruturação
▸ Suporte ao open-source
▸ Consultoria
▸ Entendimento melhor do
foco e do domínio
5
O BOLO DE PHP
6
“Rapid development php framework.
7
PRINCIPAIS DIFERENÇAS DESSE BOLO
▸ Criação rápida
▸ Configuração simples
▸ Uma grande lista de ingredientes já inclusos
▸ MVC amigável e uma boa abstração
▸ Proteções atuais necessárias
▸ Geração de código inteligente
8
NOVA VERSÃO
ESTÁVEL
1.x
2.x
3.x
9
MÃO NA MASSA
A RECEITA PARA A VERSÃO 3.X
10
PREPARANDO A MASSA
11
ESTRUTURA PSR-4
12
ANALISANDO O RECHEIO
É hora de pôr o dedo no bolo
13
POR DENTRO DO CONSOLE
▸ Framework próprio para criação de shell script integrado com o cli do
PHP
▸ Integração com a aplicação
▸ Criação de tasks reutilizáveis entre os shell scripts
14
Estrutura
CONTROLLERS E COMPONENTS
15
Como o controller funciona
HMM.. OS CONTROLLERS TEM
GOSTO DE QU´E?
REQUEST
ACTION/REQUEST PROCCESS
RESPONSE
Controller
AppController
ExamplesController
Exemplo de hierarquia Exemplo de requisição
16
Reutilizando logica de controller com components
CONTROLLER COM UMA PITADA DE
COMPONENTS
17
▸ Divisão de lógica entre controllers
▸ Sobreescrita de components ja existentes
Os ingredientes que formam o Model.
ISSO TEM CHEIRO DE MODEL?
18
Características da Table.
UMA PITADA DE TABLE
▸ Classe relacionada à tabela do banco de dados
▸ Validação de dados
▸ Callbacks
▸ Behaviors
19
Caracteristicas da Entity.
UMA PITADA DE ENTITY
▸ Representação do domínio na aplicação
▸ Criados a cada vez que a table busca dados
▸ Acessos e modificadores
▸ Propriedades virtuais
▸ Acesso a erros dos validators da table
▸ Facilidade em transformar os dados para json
20
Caracteristicas do Behavior.
E AGORA UM POUCO DE BEHAVIOR
▸ Reuso de lógica entre entidades similar a Traits
▸ Facilidade em aplicar regras a multiplas entidades
▸ Facilidade de escutar callbacks de varias entidades
▸ Aplicação de lógicas on the fly
▸ Adição de relacionamentos
▸ Possibilidade de metodos que podem ser sobre escritos
21
O PRÓPRIO ORM
▸ Inconsistências
▸ Falta de query objects
▸ Arrays como retorno
▸ Containable
▸ Recursividade
▸ Validações
PROBLEMAS QUE FORAM SOLUCIONADOS
22
O PRÓPRIO ORM
▸ Novo Design
▸ Novos callbacks
▸ Cache mais inteligente
▸ Events
▸ Query objects
▸ Entidades como objetos
AS VANTAGENS
23
O PRÓPRIO ORM
▸ Relacionamentos como métodos
▸ Metodo de initialize
▸ Remoção de virtualFields
▸ Remoção do callback de afterFind
PONTOS IMPORTANTES
24
RELACIONAMENTOS
Entre
Modelos
25
OS DIVERSOS TIPOS DE RELACIONAMENTOS
VARIOS ARTIGOS belongsTo (pertencem) A UM AUTORUM ARTIGO hasMany (tem varios) COMENTARIOS E COMENTARIOS NÃO APROVADOSUM USUÁRIO hasOne (tem um) ENDEREÇOVÁRIOS ARTIGOS belongsToMany(pertencem a vários) ENDEREÇOS
26
COBERTURA COM TEMPLATES E VIEWS
▸ Abstração de HTML com PHP
▸ Helpers para as mais diversas necessidades de view
▸ Blocos e elementos
▸ Layouts
▸ Views para XML e Json
▸ ViewBuilder para administrar as propriedades relacionadas a
view
27
COMO AS VIEWS FUNCIONAM
28
ASSANDO COM O CONSOLE
29
O CONSOLE
30
BOLOS RÁPIDOS COM O BAKE
GERAÇÃO DE CÓDIGOS
31
BOLOS RÁPIDOS COM O BAKE
O COMANDO BAKE ALL
32
PLUGIN DE SCAFFOLDING
33
PLUGIN DE ACL
34
SÓ MISTURAR COM LEITE E USAR
PLUGINS E COMPONENTS PRONTOS QUE AGILIZAM NOSSO TRABALHO
35
ROUTER MAPEANDO URLs DE BARBADA
▸ Mapeamento por array
▸ Aplicação de regras e possibilidade de ter classe propria
▸ Suporte a regex
▸ Rotas nomeadas
▸ Suporte a prefixos
36
INTERNACIONALIZAÇÃO E LOCALIZAÇÃO
▸ Configuração via .po
▸ i18n com prefixos para linguagens
▸ Tranformação de datas e moedas baseadas na localização
▸ Suporte a plural e singular em multi-linguagem
37
EVENT DISPATCHER/LISTENER
38
MIGRATIONS DE BANCO DE DADOS
▸ Wrapper to PHINX
▸ Criação de migrações especificas
▸ Possibilidade de rollback
▸ Callbacks antes e depois de rodar
39
BUGIGANGAS QUE AJUDAM NO NOSSO DIA A DIA
▸ Caching
▸ CakeEmail
▸ Folder e File
▸ Hash
▸ Inflector
▸ Logging
▸ CakeNumber
▸ Security
▸ Set
▸ XML
▸ CakeTime
40
A COMPARAÇÃO QUE O CARA DE BARBA DA
TERCEIRA FILA VAI PERGUNTAR
41
FINALIZANDO...
▸ Entenda sua necessidade
▸ Use o framework seguindo a documentação
▸ Não faça comparações incomparáveis
▸ Use filtro solar
42
OBRIGADO A TODOS E CAMIGOAL!
Perguntas?
Meu nick na deepweb é @waldemarnt , me
segue lá.
Meu blog é: http://walde.co/
43

Más contenido relacionado

La actualidad más candente

La actualidad más candente (9)

Desmistificando o JavaScript
Desmistificando o JavaScriptDesmistificando o JavaScript
Desmistificando o JavaScript
 
Introducao rubyonrails
Introducao rubyonrailsIntroducao rubyonrails
Introducao rubyonrails
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 
PHPMongoDB
PHPMongoDBPHPMongoDB
PHPMongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 

Destacado (6)

Kickstarter para jogos: É realmente necessário?
Kickstarter para jogos: É realmente necessário?Kickstarter para jogos: É realmente necessário?
Kickstarter para jogos: É realmente necessário?
 
CakePHP para iniciantes
CakePHP para iniciantesCakePHP para iniciantes
CakePHP para iniciantes
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
Como criar um artigo em 1 HORA
Como criar um artigo em 1 HORAComo criar um artigo em 1 HORA
Como criar um artigo em 1 HORA
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Aula III HTML - Criação de Sites I
Aula III HTML - Criação de Sites IAula III HTML - Criação de Sites I
Aula III HTML - Criação de Sites I
 

Similar a cakephp 3.0 o bolo ainda serve muita gente

Similar a cakephp 3.0 o bolo ainda serve muita gente (20)

Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
 
Mongo db
Mongo dbMongo db
Mongo db
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
 
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
 
Grails
GrailsGrails
Grails
 
NoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBNoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDB
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
 
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...
InterCon 2016 - Refactor direto e reto: migração de uma arquitetura 100% acop...
 
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
Azure Kubernetes Service: orquestrando containers e escalando rapidamente apl...
 

Más de tdc-globalcode

Más de tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Último

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
LeloIurk1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
LeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 

Último (20)

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
praticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médiopraticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médio
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 

cakephp 3.0 o bolo ainda serve muita gente

  • 1. O BOLO AINDA SERVE MUITA GENTE 1
  • 2. OPA! Sou o Waldemar Neto Me siga na deepweb @waldemarnt blog: http://walde.co/ 2
  • 3. UM POUCO SOBRE MIM ▸ Gaucho de Pelotas ▸ Desenvolvedor a mais de 6 anos ▸ Focado em web/api’s ▸ Palestrante sempre que possível ▸ Colaborador do iMasters e mantenho meu próprio blog ▸ Colaborador open-source 3
  • 5. O CAKEPHP E EU Desde a versão 1.x e enquanto for feliz Um pouco da história NA VIDA CAKEDC ▸ Projetos próprios ▸ Apis ▸ Sites institucionais ▸ Sistemas ▸ Estruturação ▸ Suporte ao open-source ▸ Consultoria ▸ Entendimento melhor do foco e do domínio 5
  • 6. O BOLO DE PHP 6
  • 8. PRINCIPAIS DIFERENÇAS DESSE BOLO ▸ Criação rápida ▸ Configuração simples ▸ Uma grande lista de ingredientes já inclusos ▸ MVC amigável e uma boa abstração ▸ Proteções atuais necessárias ▸ Geração de código inteligente 8
  • 10. MÃO NA MASSA A RECEITA PARA A VERSÃO 3.X 10
  • 13. ANALISANDO O RECHEIO É hora de pôr o dedo no bolo 13
  • 14. POR DENTRO DO CONSOLE ▸ Framework próprio para criação de shell script integrado com o cli do PHP ▸ Integração com a aplicação ▸ Criação de tasks reutilizáveis entre os shell scripts 14
  • 16. Como o controller funciona HMM.. OS CONTROLLERS TEM GOSTO DE QU´E? REQUEST ACTION/REQUEST PROCCESS RESPONSE Controller AppController ExamplesController Exemplo de hierarquia Exemplo de requisição 16
  • 17. Reutilizando logica de controller com components CONTROLLER COM UMA PITADA DE COMPONENTS 17 ▸ Divisão de lógica entre controllers ▸ Sobreescrita de components ja existentes
  • 18. Os ingredientes que formam o Model. ISSO TEM CHEIRO DE MODEL? 18
  • 19. Características da Table. UMA PITADA DE TABLE ▸ Classe relacionada à tabela do banco de dados ▸ Validação de dados ▸ Callbacks ▸ Behaviors 19
  • 20. Caracteristicas da Entity. UMA PITADA DE ENTITY ▸ Representação do domínio na aplicação ▸ Criados a cada vez que a table busca dados ▸ Acessos e modificadores ▸ Propriedades virtuais ▸ Acesso a erros dos validators da table ▸ Facilidade em transformar os dados para json 20
  • 21. Caracteristicas do Behavior. E AGORA UM POUCO DE BEHAVIOR ▸ Reuso de lógica entre entidades similar a Traits ▸ Facilidade em aplicar regras a multiplas entidades ▸ Facilidade de escutar callbacks de varias entidades ▸ Aplicação de lógicas on the fly ▸ Adição de relacionamentos ▸ Possibilidade de metodos que podem ser sobre escritos 21
  • 22. O PRÓPRIO ORM ▸ Inconsistências ▸ Falta de query objects ▸ Arrays como retorno ▸ Containable ▸ Recursividade ▸ Validações PROBLEMAS QUE FORAM SOLUCIONADOS 22
  • 23. O PRÓPRIO ORM ▸ Novo Design ▸ Novos callbacks ▸ Cache mais inteligente ▸ Events ▸ Query objects ▸ Entidades como objetos AS VANTAGENS 23
  • 24. O PRÓPRIO ORM ▸ Relacionamentos como métodos ▸ Metodo de initialize ▸ Remoção de virtualFields ▸ Remoção do callback de afterFind PONTOS IMPORTANTES 24
  • 26. OS DIVERSOS TIPOS DE RELACIONAMENTOS VARIOS ARTIGOS belongsTo (pertencem) A UM AUTORUM ARTIGO hasMany (tem varios) COMENTARIOS E COMENTARIOS NÃO APROVADOSUM USUÁRIO hasOne (tem um) ENDEREÇOVÁRIOS ARTIGOS belongsToMany(pertencem a vários) ENDEREÇOS 26
  • 27. COBERTURA COM TEMPLATES E VIEWS ▸ Abstração de HTML com PHP ▸ Helpers para as mais diversas necessidades de view ▸ Blocos e elementos ▸ Layouts ▸ Views para XML e Json ▸ ViewBuilder para administrar as propriedades relacionadas a view 27
  • 28. COMO AS VIEWS FUNCIONAM 28
  • 29. ASSANDO COM O CONSOLE 29
  • 31. BOLOS RÁPIDOS COM O BAKE GERAÇÃO DE CÓDIGOS 31
  • 32. BOLOS RÁPIDOS COM O BAKE O COMANDO BAKE ALL 32
  • 35. SÓ MISTURAR COM LEITE E USAR PLUGINS E COMPONENTS PRONTOS QUE AGILIZAM NOSSO TRABALHO 35
  • 36. ROUTER MAPEANDO URLs DE BARBADA ▸ Mapeamento por array ▸ Aplicação de regras e possibilidade de ter classe propria ▸ Suporte a regex ▸ Rotas nomeadas ▸ Suporte a prefixos 36
  • 37. INTERNACIONALIZAÇÃO E LOCALIZAÇÃO ▸ Configuração via .po ▸ i18n com prefixos para linguagens ▸ Tranformação de datas e moedas baseadas na localização ▸ Suporte a plural e singular em multi-linguagem 37
  • 39. MIGRATIONS DE BANCO DE DADOS ▸ Wrapper to PHINX ▸ Criação de migrações especificas ▸ Possibilidade de rollback ▸ Callbacks antes e depois de rodar 39
  • 40. BUGIGANGAS QUE AJUDAM NO NOSSO DIA A DIA ▸ Caching ▸ CakeEmail ▸ Folder e File ▸ Hash ▸ Inflector ▸ Logging ▸ CakeNumber ▸ Security ▸ Set ▸ XML ▸ CakeTime 40
  • 41. A COMPARAÇÃO QUE O CARA DE BARBA DA TERCEIRA FILA VAI PERGUNTAR 41
  • 42. FINALIZANDO... ▸ Entenda sua necessidade ▸ Use o framework seguindo a documentação ▸ Não faça comparações incomparáveis ▸ Use filtro solar 42
  • 43. OBRIGADO A TODOS E CAMIGOAL! Perguntas? Meu nick na deepweb é @waldemarnt , me segue lá. Meu blog é: http://walde.co/ 43