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 pos...
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
▸ Si...
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
▸ ...
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 aplic...
Estrutura
CONTROLLERS E COMPONENTS
15
Como o controller funciona
HMM.. OS CONTROLLERS TEM
GOSTO DE QU´E?
REQUEST
ACTION/REQUEST PROCCESS
RESPONSE
Controller
App...
Reutilizando logica de controller com components
CONTROLLER COM UMA PITADA DE
COMPONENTS
17
▸ Divisão de lógica entre cont...
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
▸ Callb...
Caracteristicas da Entity.
UMA PITADA DE ENTITY
▸ Representação do domínio na aplicação
▸ Criados a cada vez que a table b...
Caracteristicas do Behavior.
E AGORA UM POUCO DE BEHAVIOR
▸ Reuso de lógica entre entidades similar a Traits
▸ Facilidade ...
O PRÓPRIO ORM
▸ Inconsistências
▸ Falta de query objects
▸ Arrays como retorno
▸ Containable
▸ Recursividade
▸ Validações
...
O PRÓPRIO ORM
▸ Novo Design
▸ Novos callbacks
▸ Cache mais inteligente
▸ Events
▸ Query objects
▸ Entidades como objetos
A...
O PRÓPRIO ORM
▸ Relacionamentos como métodos
▸ Metodo de initialize
▸ Remoção de virtualFields
▸ Remoção do callback de af...
RELACIONAMENTOS
Entre
Modelos
25
OS DIVERSOS TIPOS DE RELACIONAMENTOS
VARIOS ARTIGOS belongsTo (pertencem) A UM AUTORUM ARTIGO hasMany (tem varios) COMENTA...
COBERTURA COM TEMPLATES E VIEWS
▸ Abstração de HTML com PHP
▸ Helpers para as mais diversas necessidades de view
▸ Blocos ...
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
▸ Supor...
INTERNACIONALIZAÇÃO E LOCALIZAÇÃO
▸ Configuração via .po
▸ i18n com prefixos para linguagens
▸ Tranformação de datas e moe...
EVENT DISPATCHER/LISTENER
38
MIGRATIONS DE BANCO DE DADOS
▸ Wrapper to PHINX
▸ Criação de migrações especificas
▸ Possibilidade de rollback
▸ Callbacks...
BUGIGANGAS QUE AJUDAM NO NOSSO DIA A DIA
▸ Caching
▸ CakeEmail
▸ Folder e File
▸ Hash
▸ Inflector
▸ Logging
▸ CakeNumber
▸...
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
▸ ...
OBRIGADO A TODOS E CAMIGOAL!
Perguntas?
Meu nick na deepweb é @waldemarnt , me
segue lá.
Meu blog é: http://walde.co/
43
Próximos SlideShares
Carregando em…5
×

Cakephp 3.0 o bolo ainda serve muita gente

428 visualizações

Publicada em

Palestra no The developers conference de Porto Alegre sobre CakePHP e sua terceira versão.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
428
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cakephp 3.0 o bolo ainda serve muita gente

  1. 1. O BOLO AINDA SERVE MUITA GENTE 1
  2. 2. OPA! Sou o Waldemar Neto Me siga na deepweb @waldemarnt blog: http://walde.co/ 2
  3. 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
  4. 4. ONDE EU TRABALHO Pelotas Earlang Argentina CONRAD CAINE 4 Munich
  5. 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. 6. O BOLO DE PHP 6
  7. 7. “Rapid development php framework. 7
  8. 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
  9. 9. NOVA VERSÃO ESTÁVEL 1.x 2.x 3.x 9
  10. 10. MÃO NA MASSA A RECEITA PARA A VERSÃO 3.X 10
  11. 11. PREPARANDO A MASSA 11
  12. 12. ESTRUTURA PSR-4 12
  13. 13. ANALISANDO O RECHEIO É hora de pôr o dedo no bolo 13
  14. 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
  15. 15. Estrutura CONTROLLERS E COMPONENTS 15
  16. 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. 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. 18. Os ingredientes que formam o Model. ISSO TEM CHEIRO DE MODEL? 18
  19. 19. Características da Table. UMA PITADA DE TABLE ▸ Classe relacionada à tabela do banco de dados ▸ Validação de dados ▸ Callbacks ▸ Behaviors 19
  20. 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. 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. 22. O PRÓPRIO ORM ▸ Inconsistências ▸ Falta de query objects ▸ Arrays como retorno ▸ Containable ▸ Recursividade ▸ Validações PROBLEMAS QUE FORAM SOLUCIONADOS 22
  23. 23. O PRÓPRIO ORM ▸ Novo Design ▸ Novos callbacks ▸ Cache mais inteligente ▸ Events ▸ Query objects ▸ Entidades como objetos AS VANTAGENS 23
  24. 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
  25. 25. RELACIONAMENTOS Entre Modelos 25
  26. 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. 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. 28. COMO AS VIEWS FUNCIONAM 28
  29. 29. ASSANDO COM O CONSOLE 29
  30. 30. O CONSOLE 30
  31. 31. BOLOS RÁPIDOS COM O BAKE GERAÇÃO DE CÓDIGOS 31
  32. 32. BOLOS RÁPIDOS COM O BAKE O COMANDO BAKE ALL 32
  33. 33. PLUGIN DE SCAFFOLDING 33
  34. 34. PLUGIN DE ACL 34
  35. 35. SÓ MISTURAR COM LEITE E USAR PLUGINS E COMPONENTS PRONTOS QUE AGILIZAM NOSSO TRABALHO 35
  36. 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. 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
  38. 38. EVENT DISPATCHER/LISTENER 38
  39. 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. 40. BUGIGANGAS QUE AJUDAM NO NOSSO DIA A DIA ▸ Caching ▸ CakeEmail ▸ Folder e File ▸ Hash ▸ Inflector ▸ Logging ▸ CakeNumber ▸ Security ▸ Set ▸ XML ▸ CakeTime 40
  41. 41. A COMPARAÇÃO QUE O CARA DE BARBA DA TERCEIRA FILA VAI PERGUNTAR 41
  42. 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. 43. OBRIGADO A TODOS E CAMIGOAL! Perguntas? Meu nick na deepweb é @waldemarnt , me segue lá. Meu blog é: http://walde.co/ 43

×