Upload
waldemar-neto
View
399
Download
1
Embed Size (px)
Citation preview
O BOLO AINDA SERVE MUITA GENTE
1
OPA!
Sou o Waldemar NetoMe 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 EUDesde 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 USARPLUGINS 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