cakephp 3.0 o bolo ainda serve muita gente

Post on 22-Feb-2017

401 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related