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
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
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
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
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