Slide 1

Slide 1 text

www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 1 / 62 APIs === HTTP + PHP + Mezzio Laminas Mezzio logo by Laminas Project php APIs === HTTP + + v. 0.2.0.20200906

Slide 2

Slide 2 text

Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP Diretor da ConFLOSS Diretor da PHP Conference Brasil Evangelista e Contribuidor para a Linguagem Evangelista Laminas Project (auto-intitulado) Embaixador Fedora LATAM Professor Convidado (Especialista) de Pós-Graduação (PR e SC) 25+ anos desenvolvendo sistemas com interface web 20+ destes com PHP 12+ com Zend Framework / Laminas Project Palestrante em eventos nacionais e internacionais Professor de cursos presenciais e a distância Quem?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 2 / 62 www.galvao.eti.br www.galvao.eti.br APIs === HTTP + PHP + Mezzio

Slide 3

Slide 3 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 3 / 62 www.galvao.eti.br Apresentar argumentos sobre por que o protocolo HTTP, a linguagem PHP e o framework Mezzio1 são as melhores opções para o desenvolvimento de APIs. [1] https://www.galvao.eti.br/do-zend-framework-ao-laminas/ APIs === HTTP + PHP + Mezzio

Slide 4

Slide 4 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 4 / 62 www.galvao.eti.br Critérios Objetivos: APIs === HTTP + PHP + Mezzio

Slide 5

Slide 5 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 5 / 62 www.galvao.eti.br Critérios Objetivos: Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio

Slide 6

Slide 6 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 6 / 62 www.galvao.eti.br Critérios Objetivos: Confiabilidade [+ Adoção [+ …]] Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio

Slide 7

Slide 7 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 7 / 62 www.galvao.eti.br Critérios Objetivos: Confiabilidade [+ Adoção [+ …]] Vitalidade (Ritmo de Evolução) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio

Slide 8

Slide 8 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 8 / 62 www.galvao.eti.br Critérios Subjetivos: APIs === HTTP + PHP + Mezzio

Slide 9

Slide 9 text

Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 9 / 62 www.galvao.eti.br Critérios Subjetivos: Todo o “fanboyismo” que eu tenho direito APIs === HTTP + PHP + Mezzio

Slide 10

Slide 10 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 10 / 62 www.galvao.eti.br Por que APIs? APIs === HTTP + PHP + Mezzio

Slide 11

Slide 11 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 11 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio

Slide 12

Slide 12 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 12 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio

Slide 13

Slide 13 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 13 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio X

Slide 14

Slide 14 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 14 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio X

Slide 15

Slide 15 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 15 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio XX

Slide 16

Slide 16 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 16 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio XX Full Stack Developer

Slide 17

Slide 17 text

Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 17 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio XX Full Stack Developer X

Slide 18

Slide 18 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 18 / 62 www.galvao.eti.br PROTOCOLO: Por que HTTP? APIs === HTTP + PHP + Mezzio

Slide 19

Slide 19 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 19 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio

Slide 20

Slide 20 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 20 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web APIs === HTTP + PHP + Mezzio

Slide 21

Slide 21 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 21 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio

Slide 22

Slide 22 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 22 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) HTTP/2 (2015) HTTP/3 (202...0?) APIs === HTTP + PHP + Mezzio

Slide 23

Slide 23 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 23 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) HTTP/2 (2015) HTTP/3 (202...0?) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio

Slide 24

Slide 24 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 24 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) HTTP/2 (2015) HTTP/3 (202...0?) Dinamismo (Qualidade de Evolução) plain/text → binário Multiplexing de requisições e respostas … e mais1 [1] https://developers.google.com/web/fundamentals/performance/http2 APIs === HTTP + PHP + Mezzio

Slide 25

Slide 25 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 25 / 62 www.galvao.eti.br Simplicidade APIs === HTTP + PHP + Mezzio

Slide 26

Slide 26 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 26 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes APIs === HTTP + PHP + Mezzio

Slide 27

Slide 27 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 27 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade APIs === HTTP + PHP + Mezzio

Slide 28

Slide 28 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 28 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade Conceitual e prática APIs === HTTP + PHP + Mezzio

Slide 29

Slide 29 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 29 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade Conceitual e prática Proliferação APIs === HTTP + PHP + Mezzio

Slide 30

Slide 30 text

Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 30 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade Conceitual e prática Proliferação em dispositivos, softwares e linguagens APIs === HTTP + PHP + Mezzio

Slide 31

Slide 31 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 31 / 62 www.galvao.eti.br LINGUAGEM: Por que PHP? APIs === HTTP + PHP + Mezzio

Slide 32

Slide 32 text

Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 32 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio

Slide 33

Slide 33 text

Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 33 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web APIs === HTTP + PHP + Mezzio

Slide 34

Slide 34 text

Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 34 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio

Slide 35

Slide 35 text

Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 35 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) PHP7 (2018) PHP8 (20201) APIs === HTTP + PHP + Mezzio [1] https://www.galvao.eti.br/top-5-php-8-features/

Slide 36

Slide 36 text

Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 36 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) PHP7 (2018) PHP8 (20201) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio [1] https://www.galvao.eti.br/top-5-php-8-features/

Slide 37

Slide 37 text

Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 37 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) PHP7 (2018) PHP8 (20201) Dinamismo (Qualidade de Evolução) Tipagem, Modelo de Exceções, OO, Segurança, Performance, etc... APIs === HTTP + PHP + Mezzio [1] https://www.galvao.eti.br/top-5-php-8-features/

Slide 38

Slide 38 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 38 / 62 www.galvao.eti.br Simplicidade APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?

Slide 39

Slide 39 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 39 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?

Slide 40

Slide 40 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 40 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?

Slide 41

Slide 41 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 41 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade Ambientes/Arquiteturas APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?

Slide 42

Slide 42 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 42 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade Ambientes/Arquiteturas Proliferação APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?

Slide 43

Slide 43 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 43 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade Ambientes/Arquiteturas Proliferação Ecossistema Comunidades Mercado APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?

Slide 44

Slide 44 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 44 / 62 www.galvao.eti.br FRAMEWORK: Por que Laminas Mezzio? APIs === HTTP + PHP + Mezzio

Slide 45

Slide 45 text

Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 45 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio

Slide 46

Slide 46 text

Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 46 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP APIs === HTTP + PHP + Mezzio

Slide 47

Slide 47 text

Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 47 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio

Slide 48

Slide 48 text

Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 48 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) ZF1 (≃ 2008) → … → ZF2 (2012) ZF2 (2012) → ... → ZF3 (2016) ZF3 (2016) → ... → Laminas (2019) APIs === HTTP + PHP + Mezzio

Slide 49

Slide 49 text

Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 49 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) ZF1 (≃ 2008) → … → ZF2 (2012) ZF2 (2012) → ... → ZF3 (2016) ZF3 (2016) → ... → Laminas (2019) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio

Slide 50

Slide 50 text

Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 50 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) ZF1 (≃ 2008) → … → ZF2 (2012) ZF2 (2012) → ... → ZF3 (2016) ZF3 (2016) → ... → Laminas (2019) Dinamismo (Qualidade de Evolução) Modularidade, Injeção de Dependências, Estrutura de Projeto, Integração com outros componentes APIs === HTTP + PHP + Mezzio

Slide 51

Slide 51 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 51 / 62 www.galvao.eti.br Capital cultural/intelectual imenso APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?

Slide 52

Slide 52 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 52 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?

Slide 53

Slide 53 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 53 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?

Slide 54

Slide 54 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 54 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto O foco é a qualidade do código e não o “usuário”(sic) APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?

Slide 55

Slide 55 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 55 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto O foco é a qualidade do código e não o “usuário”(sic) Interoperabilidade APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?

Slide 56

Slide 56 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 56 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto O foco é a qualidade do código e não o “usuário”(sic) Interoperabilidade Use o que quiser, como quiser APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?

Slide 57

Slide 57 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 57 / 62 www.galvao.eti.br Conclusão: EVOLUÇÃO APIs === HTTP + PHP + Mezzio

Slide 58

Slide 58 text

Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 58 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3

Slide 59

Slide 59 text

Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 59 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3 SSI → Perl → PHP4 → PHP5 → PHP7 → PHP8

Slide 60

Slide 60 text

Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 60 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3 SSI → Perl → PHP4 → PHP5 → PHP7 → PHP8 ZF1 → ZF2 → ZF3 → Laminas

Slide 61

Slide 61 text

Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 61 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3 SSI → Perl → PHP4 → PHP5 → PHP7 → PHP8 ZF1 → ZF2 → ZF3 → Laminas Texto → CSV → XML → JSON JSONSchema OpenAPI

Slide 62

Slide 62 text

Muito obrigado! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 62 / 62 www.galvao.eti.br Dúvidas? Críticas? Elogios?! ? APIs === HTTP + PHP + Mezzio