SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
PHP: Como não Programar em POG
Dicas para criar soluções com Potencial
Cícero Moura
Roteiro
● Razões para escolher o PHP
● Porque o PHP é considerado uma linguagem Suja
● Boas práticas de programação com o PHP
● Ferramentas para auxiliar o desenvolvimento
● Utilizando MVC com PHP
● Utilizando Framework com PHP
● Dicas Finais
Cícero Moura PHP: Como não Programar em POG
PHP: Por que devo escolher?
● Linguagem de back-end(server-side) voltada para Web
● Fácil Aprendizagem
● Proporciona um desenvolvimento intuitivo e interativo
● Multiplataforma
● Código fonte aberto
● Resolve praticamente todos os seus problemas
Cícero Moura PHP: Como não Programar em POG
“Se você tem um problema que não consegue resolver, chame um programador
PHP, se ele não conseguir resolver, desista, seu problema não tem solução!”
PHP: Então qual o Problema?
● Linguagem de multiparadigma (Estruturada, Orientada a Objetos e Orientada a Gambiarra)
● Não Tipada (Vem se tornando fracamente tipada)
● Documentação incompleta e conteúdo de estudo desatualizados
● Falta de segurança
● Fácil de criar saídas técnicas (Famosa Gambiarra)
Cícero Moura PHP: Como não Programar em POG
PHP: Por que adotar boas práticas?
● Criar sistemas seguros e com bom desempenho
● Gerar Qualidade de Software
● Aumentar a manutenibilidade do sistema
● Ter um Software flexível e reutilizável
● Não ser xingado pelos colegas de trabalho ou da área
Cícero Moura PHP: Como não Programar em POG
Quais são as formas de não utilizar POG?
Cícero Moura PHP: Como não Programar em POG
Utilize a última versão da Linguagem
● O PHP atualmente está na versão 7.
● A versão mais nova traz melhorias em relação a 5.6.x, podemos citar:
1. Motor remodelado, com isso, houve um grande ganho de desempenho.
2. Erros fatais passaram a ser Exceções, isso quer dizer que eles podem
ser tratados em bloco try/catch.
3. É possível definir alguns tipos para parâmetros de métodos e funções,
inclusive o seu retorno, se tornando uma linguagem fracamente tipada.
● Independente da versão do PHP utilize Orientação a
Objetos.
Cícero Moura PHP: Como não Programar em POG
Utilize ferramentas para auxiliar o desenvolvimento
● Ferramentas são essenciais para organizar o projeto, automatizar atividades
e manter o controle sobre a aplicação em desenvolvimento.
● IDE: fornece um local único para seu trabalho de codificação e fornece
diversas funcionalidades: Projetos, Depuração, Inteligência de Código,
Visualização de Classes, Controle de Código de Origem (CVS) e Integração
de FTP/SFTP.
● IDE para PHP: Eclipse, Zend Studio e JetBrains PhpStorm.
Cícero Moura PHP: Como não Programar em POG
Utilize Controle de Versão
● O controle de versão é um sistema que registra as mudanças feitas em um
arquivo ou um conjunto de arquivos ao longo do tempo de forma que você
possa recuperar versões específicas.
● Atualmente as ferramentas mais utilizadas são:
➔ Git e Github: Git é um sistema de controle de versão de arquivos e o
Github oferece funcionalidades que estende o Git, inclusive o repositório
para armazenar projetos.
Cícero Moura PHP: Como não Programar em POG
Git e Github
● Instalação do Git
● Configurações iniciais de usuário do Git
● Criar conta e um novo repositório no Github: https://github.com
Cícero Moura PHP: Como não Programar em POG
Git e Github
● Clonando um repositório
● Adicionando alterações no index do git
● Criando versão do projeto com um número único
● Salvando alterações no repositório
● Resgatando alterações do Github
Cícero Moura PHP: Como não Programar em POG
Utilize um Gerenciador de Dependências
● Responsável por gerenciar bibliotecas externas ou até mesmo internas que
sejam necessárias para o projeto.
● Composer: Instalação e configuração
Cícero Moura PHP: Como não Programar em POG
Composer: Instalção e Configuração
● Adicionando bibliotecas no arquivo composer.json
● Lendo o arquivo composer.json e baixando as dependências
Cícero Moura PHP: Como não Programar em POG
Adote um Padrão de Arquitetura
● Padrões de projetos são soluções para problemas que alguém um dia teve e
resolveu aplicando um modelo que foi documentado e que você pode
adaptar integralmente ou de acordo com a necessidade da sua solução.
● Um padrão de arquitetura está ligado diretamente com a forma que você
organiza o seu projeto.
● Exemplos: MVC, MVVM e MVP.
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Model - View - Controller
● Model: responsável pela leitura e escrita de
dados, e também de suas validações.
● View: camada de interação com o usuário.
Ela apenas faz a exibição dos dados.
● Controller: comunicação entre a Model e
View.
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Onde tudo se inicia.
● Configurando os redirecionamentos.
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Instanciando minha aplicação
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Gerenciando todas as requisições de classes do projeto
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Classe App: Tratamento de URL e
direcionamento dos controllers e
métodos a serem executados.
Modelo de URL padrão:
www.dominio.com.br/controller/metodo/parametros
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Decisão da View a ser chamada
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Comunicação entre Model e View
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Representação da tabelas do Banco de Dados
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Conexão com o Banco de Dados
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Classe da Model
Cícero Moura PHP: Como não Programar em POG
MVC com PHP
● Mostrando conteúdo na tela, exemplo de View.
Cícero Moura PHP: Como não Programar em POG
Utilize um Framework
● Framework é uma abstração que une códigos comuns entre vários projetos
de software provendo uma funcionalidade genérica.
● Um framework pode atingir uma funcionalidade específica, por configuração,
durante a programação de uma aplicação.
● Um framework é utilizado para automatizar atividades, organizar o projeto e
aumentar o desempenho na fase de desenvolvimento e manutenção da
aplicação.
● Exemplos: CakePHP, Zend Framework e Laravel.
Cícero Moura PHP: Como não Programar em POG
Laravel Framework PHP
● Atualmente na versão 5.3 suportando PHP 5.6.4
ou superior.
➔ Instalação via Composer
● Depois de executar o comando o seu projeto é
criado com todos os arquivos.
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Arquivos padrão do projeto criado
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Configuração das variáveis de ambiente do projeto.
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Conexão com o Banco de Dados
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Criando os Models pela linha de comando
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Definindo as tabelas do Banco de Dados pelo PHP
● Comando pelo terminal para criar as tabelas
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Definindo as rotas da aplicação para redirecionar requisições a um
Controller e Método específico.
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Criando e Implementando um Controller com método que pega parâmetros
da URL e repassa para a view da aplicação.
● Comando para criar um Controller
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Implementando uma View que mostra o conteúdo direcionado pelo
Controller.
● blade é o mecanismo de templates fornecido com o Laravel
● URL: www.meusite.com.br/Home/FGSL
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Executando o projeto para testes e acessando link para mostrar a view
● URL: localhost:8000/Home/FGSL
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Implementando um Controller com método que pega dados do Banco de
Dados e repassa para a view da aplicação.
● URL: www.meusite.com.br/Products
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Criando um template com seções para usar de base para outras views da
aplicação. Seções: titulo e conteudo:
Cícero Moura PHP: Como não Programar em POG
Laravel Framework
● Usando o template para mostrar o conteúdo encaminhado pelo Controller
Cícero Moura PHP: Como não Programar em POG
Dicas Finais
● Busque sempre se manter atualizado sobre as novas técnicas e tendências
de desenvolvimento.
● Use sempre bibliotecas e códigos testados e reconhecidos.
● Procure por materiais de estudo sempre atualizados.
● Tire dúvidas nas próprias documentações da linguagem, framework,
biblioteca…
➔ Links úteis:
http://www.php.net/manual/pt_BR/
https://getcomposer.org/
https://laravel.com/
http://laravel.artesaos.org/
Cícero Moura PHP: Como não Programar em POG
Cícero Moura
cicerojmm@gmail.com

Mais conteúdo relacionado

Mais procurados

Revisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaRevisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaLeandro Parazito
 
Introdução ao codeigniter
Introdução ao codeigniterIntrodução ao codeigniter
Introdução ao codeigniterPatrick Monteiro
 
Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017Renato Groff
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScriptDan Vitoriano
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAndré Luiz Forchesatto
 
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout  Tempo Real Eventos - Javascript - Os Primeiros PassosHangout  Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout Tempo Real Eventos - Javascript - Os Primeiros PassosJackson F. de A. Mafra
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Renato Groff
 
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Renato Groffe
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXjesuinoPower
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017Renato Groff
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?tdc-globalcode
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...tdc-globalcode
 

Mais procurados (20)

Revisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaRevisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da cultura
 
Introdução ao codeigniter
Introdução ao codeigniterIntrodução ao codeigniter
Introdução ao codeigniter
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Aula 02 introdução ao php
Aula 02   introdução ao phpAula 02   introdução ao php
Aula 02 introdução ao php
 
Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout  Tempo Real Eventos - Javascript - Os Primeiros PassosHangout  Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
#Qualidade decodigo
#Qualidade decodigo#Qualidade decodigo
#Qualidade decodigo
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017
 
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
 

Semelhante a PHP POG: Como não programar

Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Geoprocessamento livre na web com openlayers e cake php
Geoprocessamento livre na web com openlayers e cake phpGeoprocessamento livre na web com openlayers e cake php
Geoprocessamento livre na web com openlayers e cake phpRafael Soto
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em InformáticaEder Carneiro
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHPVinícius Krolow
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra
 
Frameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoFrameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoIago Santos Leão
 
Aula 1 - Apresentação da Disciplinatec.pptx
Aula 1 - Apresentação da Disciplinatec.pptxAula 1 - Apresentação da Disciplinatec.pptx
Aula 1 - Apresentação da Disciplinatec.pptxHailtonReis
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap Raniere de Lima
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Programando razor
Programando razorProgramando razor
Programando razorVitor Reis
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveiselliando dias
 

Semelhante a PHP POG: Como não programar (20)

Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Geoprocessamento livre na web com openlayers e cake php
Geoprocessamento livre na web com openlayers e cake phpGeoprocessamento livre na web com openlayers e cake php
Geoprocessamento livre na web com openlayers e cake php
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em Informática
 
Cursos Season
Cursos SeasonCursos Season
Cursos Season
 
Cursos Season
Cursos Season Cursos Season
Cursos Season
 
Deixando de ser moleque com PHP
Deixando de ser moleque com PHPDeixando de ser moleque com PHP
Deixando de ser moleque com PHP
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
 
Frameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimentoFrameworks: uma mão na roda para o desenvolvimento
Frameworks: uma mão na roda para o desenvolvimento
 
Aula 1 - Apresentação da Disciplinatec.pptx
Aula 1 - Apresentação da Disciplinatec.pptxAula 1 - Apresentação da Disciplinatec.pptx
Aula 1 - Apresentação da Disciplinatec.pptx
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Programando razor
Programando razorProgramando razor
Programando razor
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
 

Mais de Cicero Joasyo Mateus de Moura

Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...Cicero Joasyo Mateus de Moura
 
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...Cicero Joasyo Mateus de Moura
 
Re:cap do AWS re:Invet 2022 for Data Engineer and Analytics
Re:cap do AWS re:Invet 2022 for Data Engineer and AnalyticsRe:cap do AWS re:Invet 2022 for Data Engineer and Analytics
Re:cap do AWS re:Invet 2022 for Data Engineer and AnalyticsCicero Joasyo Mateus de Moura
 
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...Cicero Joasyo Mateus de Moura
 
CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss...
 CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss... CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss...
CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss...Cicero Joasyo Mateus de Moura
 
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...Cicero Joasyo Mateus de Moura
 
Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...
Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...
Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...Cicero Joasyo Mateus de Moura
 
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...Cicero Joasyo Mateus de Moura
 
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...Cicero Joasyo Mateus de Moura
 
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisBig Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisCicero Joasyo Mateus de Moura
 
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRStream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRCicero Joasyo Mateus de Moura
 
Big Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosBig Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosCicero Joasyo Mateus de Moura
 
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...Cicero Joasyo Mateus de Moura
 
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearchProcessamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearchCicero Joasyo Mateus de Moura
 
Construindo sua Assistente Virtual Integrada a Dispositivos IoT com Python ...
Construindo sua  Assistente Virtual  Integrada a Dispositivos IoT com Python ...Construindo sua  Assistente Virtual  Integrada a Dispositivos IoT com Python ...
Construindo sua Assistente Virtual Integrada a Dispositivos IoT com Python ...Cicero Joasyo Mateus de Moura
 
IoT e TA: Soluções Com Potencial Para Melhorar a Vida das Pessoas
IoT e TA: Soluções Com Potencial Para Melhorar a Vida das PessoasIoT e TA: Soluções Com Potencial Para Melhorar a Vida das Pessoas
IoT e TA: Soluções Com Potencial Para Melhorar a Vida das PessoasCicero Joasyo Mateus de Moura
 

Mais de Cicero Joasyo Mateus de Moura (18)

Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
 
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
Escalando a Qualidade de Dados com Great Expectations e Spark no Modern Data ...
 
Re:cap do AWS re:Invet 2022 for Data Engineer and Analytics
Re:cap do AWS re:Invet 2022 for Data Engineer and AnalyticsRe:cap do AWS re:Invet 2022 for Data Engineer and Analytics
Re:cap do AWS re:Invet 2022 for Data Engineer and Analytics
 
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...
 
CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss...
 CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss... CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss...
CPGOIAS2 2022: Big Data e Machine Learning: vida real, cases práticos e poss...
 
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
 
Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...
Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...
Big Data e Machine Learning: vida real, cases práticos e possível futuro da á...
 
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...
 
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
 
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisBig Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
 
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRStream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
 
Big Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosBig Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dados
 
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
 
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearchProcessamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
 
Construindo sua Assistente Virtual Integrada a Dispositivos IoT com Python ...
Construindo sua  Assistente Virtual  Integrada a Dispositivos IoT com Python ...Construindo sua  Assistente Virtual  Integrada a Dispositivos IoT com Python ...
Construindo sua Assistente Virtual Integrada a Dispositivos IoT com Python ...
 
IoT e TA: Soluções Com Potencial Para Melhorar a Vida das Pessoas
IoT e TA: Soluções Com Potencial Para Melhorar a Vida das PessoasIoT e TA: Soluções Com Potencial Para Melhorar a Vida das Pessoas
IoT e TA: Soluções Com Potencial Para Melhorar a Vida das Pessoas
 
Joincommunity - Goiânia 2018
Joincommunity - Goiânia 2018Joincommunity - Goiânia 2018
Joincommunity - Goiânia 2018
 
IoT: construindo ideias com nodeMCU e MQTT
IoT: construindo ideias com nodeMCU e MQTTIoT: construindo ideias com nodeMCU e MQTT
IoT: construindo ideias com nodeMCU e MQTT
 

PHP POG: Como não programar

  • 1. PHP: Como não Programar em POG Dicas para criar soluções com Potencial Cícero Moura
  • 2. Roteiro ● Razões para escolher o PHP ● Porque o PHP é considerado uma linguagem Suja ● Boas práticas de programação com o PHP ● Ferramentas para auxiliar o desenvolvimento ● Utilizando MVC com PHP ● Utilizando Framework com PHP ● Dicas Finais Cícero Moura PHP: Como não Programar em POG
  • 3. PHP: Por que devo escolher? ● Linguagem de back-end(server-side) voltada para Web ● Fácil Aprendizagem ● Proporciona um desenvolvimento intuitivo e interativo ● Multiplataforma ● Código fonte aberto ● Resolve praticamente todos os seus problemas Cícero Moura PHP: Como não Programar em POG “Se você tem um problema que não consegue resolver, chame um programador PHP, se ele não conseguir resolver, desista, seu problema não tem solução!”
  • 4. PHP: Então qual o Problema? ● Linguagem de multiparadigma (Estruturada, Orientada a Objetos e Orientada a Gambiarra) ● Não Tipada (Vem se tornando fracamente tipada) ● Documentação incompleta e conteúdo de estudo desatualizados ● Falta de segurança ● Fácil de criar saídas técnicas (Famosa Gambiarra) Cícero Moura PHP: Como não Programar em POG
  • 5. PHP: Por que adotar boas práticas? ● Criar sistemas seguros e com bom desempenho ● Gerar Qualidade de Software ● Aumentar a manutenibilidade do sistema ● Ter um Software flexível e reutilizável ● Não ser xingado pelos colegas de trabalho ou da área Cícero Moura PHP: Como não Programar em POG
  • 6. Quais são as formas de não utilizar POG? Cícero Moura PHP: Como não Programar em POG
  • 7. Utilize a última versão da Linguagem ● O PHP atualmente está na versão 7. ● A versão mais nova traz melhorias em relação a 5.6.x, podemos citar: 1. Motor remodelado, com isso, houve um grande ganho de desempenho. 2. Erros fatais passaram a ser Exceções, isso quer dizer que eles podem ser tratados em bloco try/catch. 3. É possível definir alguns tipos para parâmetros de métodos e funções, inclusive o seu retorno, se tornando uma linguagem fracamente tipada. ● Independente da versão do PHP utilize Orientação a Objetos. Cícero Moura PHP: Como não Programar em POG
  • 8. Utilize ferramentas para auxiliar o desenvolvimento ● Ferramentas são essenciais para organizar o projeto, automatizar atividades e manter o controle sobre a aplicação em desenvolvimento. ● IDE: fornece um local único para seu trabalho de codificação e fornece diversas funcionalidades: Projetos, Depuração, Inteligência de Código, Visualização de Classes, Controle de Código de Origem (CVS) e Integração de FTP/SFTP. ● IDE para PHP: Eclipse, Zend Studio e JetBrains PhpStorm. Cícero Moura PHP: Como não Programar em POG
  • 9. Utilize Controle de Versão ● O controle de versão é um sistema que registra as mudanças feitas em um arquivo ou um conjunto de arquivos ao longo do tempo de forma que você possa recuperar versões específicas. ● Atualmente as ferramentas mais utilizadas são: ➔ Git e Github: Git é um sistema de controle de versão de arquivos e o Github oferece funcionalidades que estende o Git, inclusive o repositório para armazenar projetos. Cícero Moura PHP: Como não Programar em POG
  • 10. Git e Github ● Instalação do Git ● Configurações iniciais de usuário do Git ● Criar conta e um novo repositório no Github: https://github.com Cícero Moura PHP: Como não Programar em POG
  • 11. Git e Github ● Clonando um repositório ● Adicionando alterações no index do git ● Criando versão do projeto com um número único ● Salvando alterações no repositório ● Resgatando alterações do Github Cícero Moura PHP: Como não Programar em POG
  • 12. Utilize um Gerenciador de Dependências ● Responsável por gerenciar bibliotecas externas ou até mesmo internas que sejam necessárias para o projeto. ● Composer: Instalação e configuração Cícero Moura PHP: Como não Programar em POG
  • 13. Composer: Instalção e Configuração ● Adicionando bibliotecas no arquivo composer.json ● Lendo o arquivo composer.json e baixando as dependências Cícero Moura PHP: Como não Programar em POG
  • 14. Adote um Padrão de Arquitetura ● Padrões de projetos são soluções para problemas que alguém um dia teve e resolveu aplicando um modelo que foi documentado e que você pode adaptar integralmente ou de acordo com a necessidade da sua solução. ● Um padrão de arquitetura está ligado diretamente com a forma que você organiza o seu projeto. ● Exemplos: MVC, MVVM e MVP. Cícero Moura PHP: Como não Programar em POG
  • 15. MVC com PHP ● Model - View - Controller ● Model: responsável pela leitura e escrita de dados, e também de suas validações. ● View: camada de interação com o usuário. Ela apenas faz a exibição dos dados. ● Controller: comunicação entre a Model e View. Cícero Moura PHP: Como não Programar em POG
  • 16. MVC com PHP ● Onde tudo se inicia. ● Configurando os redirecionamentos. Cícero Moura PHP: Como não Programar em POG
  • 17. MVC com PHP ● Instanciando minha aplicação Cícero Moura PHP: Como não Programar em POG
  • 18. MVC com PHP ● Gerenciando todas as requisições de classes do projeto Cícero Moura PHP: Como não Programar em POG
  • 19. MVC com PHP ● Classe App: Tratamento de URL e direcionamento dos controllers e métodos a serem executados. Modelo de URL padrão: www.dominio.com.br/controller/metodo/parametros Cícero Moura PHP: Como não Programar em POG
  • 20. MVC com PHP ● Decisão da View a ser chamada Cícero Moura PHP: Como não Programar em POG
  • 21. MVC com PHP ● Comunicação entre Model e View Cícero Moura PHP: Como não Programar em POG
  • 22. MVC com PHP ● Representação da tabelas do Banco de Dados Cícero Moura PHP: Como não Programar em POG
  • 23. MVC com PHP ● Conexão com o Banco de Dados Cícero Moura PHP: Como não Programar em POG
  • 24. MVC com PHP ● Classe da Model Cícero Moura PHP: Como não Programar em POG
  • 25. MVC com PHP ● Mostrando conteúdo na tela, exemplo de View. Cícero Moura PHP: Como não Programar em POG
  • 26. Utilize um Framework ● Framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. ● Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. ● Um framework é utilizado para automatizar atividades, organizar o projeto e aumentar o desempenho na fase de desenvolvimento e manutenção da aplicação. ● Exemplos: CakePHP, Zend Framework e Laravel. Cícero Moura PHP: Como não Programar em POG
  • 27. Laravel Framework PHP ● Atualmente na versão 5.3 suportando PHP 5.6.4 ou superior. ➔ Instalação via Composer ● Depois de executar o comando o seu projeto é criado com todos os arquivos. Cícero Moura PHP: Como não Programar em POG
  • 28. Laravel Framework ● Arquivos padrão do projeto criado Cícero Moura PHP: Como não Programar em POG
  • 29. Laravel Framework ● Configuração das variáveis de ambiente do projeto. Cícero Moura PHP: Como não Programar em POG
  • 30. Laravel Framework ● Conexão com o Banco de Dados Cícero Moura PHP: Como não Programar em POG
  • 31. Laravel Framework ● Criando os Models pela linha de comando Cícero Moura PHP: Como não Programar em POG
  • 32. Laravel Framework ● Definindo as tabelas do Banco de Dados pelo PHP ● Comando pelo terminal para criar as tabelas Cícero Moura PHP: Como não Programar em POG
  • 33. Laravel Framework ● Definindo as rotas da aplicação para redirecionar requisições a um Controller e Método específico. Cícero Moura PHP: Como não Programar em POG
  • 34. Laravel Framework ● Criando e Implementando um Controller com método que pega parâmetros da URL e repassa para a view da aplicação. ● Comando para criar um Controller Cícero Moura PHP: Como não Programar em POG
  • 35. Laravel Framework ● Implementando uma View que mostra o conteúdo direcionado pelo Controller. ● blade é o mecanismo de templates fornecido com o Laravel ● URL: www.meusite.com.br/Home/FGSL Cícero Moura PHP: Como não Programar em POG
  • 36. Laravel Framework ● Executando o projeto para testes e acessando link para mostrar a view ● URL: localhost:8000/Home/FGSL Cícero Moura PHP: Como não Programar em POG
  • 37. Laravel Framework ● Implementando um Controller com método que pega dados do Banco de Dados e repassa para a view da aplicação. ● URL: www.meusite.com.br/Products Cícero Moura PHP: Como não Programar em POG
  • 38. Laravel Framework ● Criando um template com seções para usar de base para outras views da aplicação. Seções: titulo e conteudo: Cícero Moura PHP: Como não Programar em POG
  • 39. Laravel Framework ● Usando o template para mostrar o conteúdo encaminhado pelo Controller Cícero Moura PHP: Como não Programar em POG
  • 40. Dicas Finais ● Busque sempre se manter atualizado sobre as novas técnicas e tendências de desenvolvimento. ● Use sempre bibliotecas e códigos testados e reconhecidos. ● Procure por materiais de estudo sempre atualizados. ● Tire dúvidas nas próprias documentações da linguagem, framework, biblioteca… ➔ Links úteis: http://www.php.net/manual/pt_BR/ https://getcomposer.org/ https://laravel.com/ http://laravel.artesaos.org/ Cícero Moura PHP: Como não Programar em POG