apresentação faef
DESCRIPTION
Mini curso de PHP ministrado no XIV SIMPÓSIO DE CIÊNCIAS APLICADAS DA FAEFTRANSCRIPT
![Page 1: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/1.jpg)
Prof. Lucas Simões [email protected]
http://www.twitter.com/lucas_simoeshttp://blogdopiruca.wordpress.com/
![Page 2: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/2.jpg)
Apresentação Prof. Lucas Simões Maistro
Especialista em Sistemas para Internet
Bacharel em Administração de Empresas com Habilitação em Análise de Sistemas
Engenheiro de Software da Critical Software do Brasil
11 anos de experiência em desenvolvimento de software
![Page 3: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/3.jpg)
Tendências do Mercado
Sistemas Web
Mobilidade
Saas
Computação em Nuvem (Cloud Computing)
![Page 4: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/4.jpg)
O que é PHP? O PHP é, assim como Java e .NET, uma linguagem de programação e
uma plataforma global.
Como linguagem de programação, PHP tem uma sintaxe bastante parecida com C, Shell, Perl e Java.
Com PHP é possível desenvolver:
Aplicações Web dinâmicas (websites, intranets, extranets, etc); Aplicações desktop (PHP-GTK e PHP4Delphi); Rich Clients (PHP-XUL); Web Services (SOAP, XML-RPC, REST); Scripts de linha de comando; Tarefas de segundo plano.
![Page 5: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/5.jpg)
O que é PHP? Cerca de 1000 engenheiros desenvolvem o PHP.
O PHP é Software Livre, distribuído sob uma licença na qual os usuários não são obrigados a publicar seu código.
A portabilidade é uma das maiores vantagens do PHP, possibilitando sua instalação em vários Sistemas Operacionais como: Windows, Linux, Unix, IBM iSeries, SGI IRIX, RISC OS, Netware Novell, Mac OS X e AmigaOS
Utilizado com: Um servidor Web: Apache ou Microsoft IIS; Um SGDB (banco de dados): MySQL, PostgreSQL, Oracle, SQL Server,
etc. A maioria das plataformas utilizam Linux, Apache e MySQL.
![Page 6: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/6.jpg)
Por que usar PHP?
![Page 7: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/7.jpg)
Simplicidade O PHP é uma linguagem com um modelo de
desenvolvimento muito simples.
O objetivo inicial do PHP era tornar possível um desenvolvimento rápido sem um treinamento preliminar.
Esse objetivo foi alcançado, fazendo com que a maioria das empresas de hospedagem ofereçam PHP nos seus servidores.
![Page 8: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/8.jpg)
Adaptabilidade O PHP usa duas sintaxes: procedura e orientada a
objetos. Procedural:
utilizada por webmasters que trabalham na interface com o usuário.
Orientada a Objetos: propositalmente similar ao Java e C#, com o objetivo de
reduzir os custos com treinamento e encorajar a migração para o PHP.
![Page 9: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/9.jpg)
Interoperabilidade Diversas ferramentas suportam a linguagem PHP, por
exemplo, Visual Studio (utilizando o framework .Net) e Delphi;
Acesso a qualquer banco de dados relacional;
XML
Web Services
![Page 10: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/10.jpg)
Dephi for PHP e RadPHP XE
![Page 11: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/11.jpg)
Visual Studio 2010
![Page 12: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/12.jpg)
Portabilidade Disponível para a maioria dos sistemas operacionais,
o PHP funciona da mesma maneira que a Maquina Virtual do Java (JVM).
Após desenvolver a aplicação, ela irá funcionar imediatamente, sem a necessidade de recompilar, independente de qual sistema operacional está sendo utilizado.
![Page 13: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/13.jpg)
Uma das linguagens mais utilizadas
Fonte: http://www.tiobe.com
![Page 14: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/14.jpg)
Alta Demanda por Profissionais
![Page 15: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/15.jpg)
Esquema de Funcionamento
![Page 16: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/16.jpg)
Primeiro Script
![Page 17: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/17.jpg)
Detalhamento do Script No exemplo, é criada uma variável chamada $texto e
atribuído o valor “Primeiro Script”, que posteriormente será exibido pelo browser. Toda variável em PHP é iniciada por $. Não há necessidade de declarar o tipo de variável. Quando a página é carregada, o script PHP é
interpretado pelo Apache e substituído pelo resultado gerado puramente em Html.
Isso pode ser verificado a partir do browser no menu: Exibir / Código fonte
![Page 18: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/18.jpg)
Utilizando Formulários em HTML
![Page 19: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/19.jpg)
Detalhamento do Script empty retorna se a variável passada no parâmetro vale null ou
“”. null indica variável não declarada e “” indica que variável tem valor
vazio. $_REQUEST retorna o valor contido num campo do formulário.
É necessário que a propriedade NAME do INPUT do formulário HMTL tenha o mesmo nome do parâmetro usado em $_REQUEST.
$_REQUEST requisita valores enviados pelos métodos GET e POST. Para especificar apenas um dos métodos, utilize $_GET e $_POST.
A instrução if é usada para garantir que nada seja apresentado quando a página for carregada pela primeira vez.
É possível atribuir o valor do INPUT direto para uma variável do PHP. É preciso configurar register_globals = On no arquivo PHP.INI e
reiniciar o servidor Apache.
![Page 20: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/20.jpg)
If..else // while // for if..else
while
for
![Page 21: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/21.jpg)
Inclusão de outros Scripts
![Page 22: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/22.jpg)
Uso de Vetor (array)
![Page 23: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/23.jpg)
Sessão
![Page 24: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/24.jpg)
Curiosidade - ZIP No site do PHPClasses é possível encontrar classes
com funcionalidades incríveis
![Page 25: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/25.jpg)
Curiosidade - ZIP Index.php compactar.php
![Page 26: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/26.jpg)
Curiosidade - Thumbnails Thumbnails são as versões reduzidas das imagens No próprio google é possível encontrar diversas
classes e rotinas em PHP que criam esse efeito
![Page 27: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/27.jpg)
Conectando BD Em programação web deve-se pensar em:
Conectar ao banco de dados o mais tardar possível Desconectar o quanto antes.
![Page 28: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/28.jpg)
Programação Orientada a Objetos no PHP
Projetos profissionais exigem alto nível de reusabilidade
A melhor maneira de alcançar esse objetivo é trabalhar orientado à objetos
O PHP não poderia ficar fora dessa
![Page 29: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/29.jpg)
Conceitos da Orientação a Objetos
A orientação a objetos (OO), também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
![Page 30: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/30.jpg)
Conceitos da Orientação a Objetos Classe Objeto Atributos Métodos Sobrecarga Herança Associação Encapsulamento Abstração Polimorfismo
![Page 31: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/31.jpg)
Classe
Uma classe define o objeto com comportamento, através de métodos, e quais estados ele é capaz de manter, através de atributos.
Exemplo de classe: Os seres humanos.
![Page 32: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/32.jpg)
Objeto Objeto é uma instância de uma classe. Um objeto
é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.
Exemplo de objetos da classe Humanos: João, José, Maria.
![Page 33: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/33.jpg)
Atributos São dados ou informações do objeto, basicamente
a estrutura de dados que vai representar a classe. Exemplos:
- Funcionário: nome, endereço, telefone, CPF; - Carro: nome, marca, ano, cor; - Livro: autor, editora, ano.
![Page 34: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/34.jpg)
Métodos Definem as habilidades dos objetos. Bidu é uma instância da classe Cachorro, portanto
tem habilidade para latir, implementada através do método deUmLatido().
Um método em uma classe é apenas uma definição.
A ação só ocorre quando o método é invocado através do objeto, no caso Bidu.
![Page 35: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/35.jpg)
Sobrecarga É a utilização do mesmo nome para símbolos ou
métodos com operações ou funcionalidades distintas. Geralmente diferencia-se os métodos pela sua assinatura.
![Page 36: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/36.jpg)
Herança É o mecanismo pelo qual uma classe (classe-filha)
pode estender outra classe (classe-mãe), aproveitando seus comportamentos (métodos) e estados possíveis (atributos).
Mamífero é classe-mãe de Humano (classe-filha).
![Page 37: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/37.jpg)
Encapsulamento Consiste na separação de aspectos internos e
externos de um objeto. Exemplo: você não precisa conhecer os detalhes
dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável
![Page 38: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/38.jpg)
Abstração É a habilidade de concentrar nos aspectos
essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software.
![Page 39: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/39.jpg)
Polimorfismo É o princípio pelo qual duas ou mais classes
derivadas de uma mesma classe-mãe podem invocar métodos que têm a mesma assinatura.
A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução.
![Page 40: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/40.jpg)
Linguagens com suporte a OO Smalltalk Perl Python Ruby on Rails ColdFusion C++ Object Pascal (Delphi) Java C# VB.NET
![Page 41: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/41.jpg)
Exemplo
![Page 42: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/42.jpg)
Exemplo – Classe Aluno
![Page 43: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/43.jpg)
Exemplo – Classe Aluno – Métodos de Acesso a Dados
![Page 44: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/44.jpg)
Exemplo PHP OO
![Page 45: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/45.jpg)
Padrão MVC (Model-View-Controller) Model
Camada de Controle - determina o fluxo da apresentação servindo como uma camada intermediária entre a camada de apresentação e a lógica. Controla e mapeia as ações.
View Camada de apresentação ou visualização - Não esta preocupada em
como a informação foi obtida ou onde ela foi obtida apenas exibe a informação. Inclui os elementos de exibição no cliente: HTML, XML, ASP, Applets. É a camada de interface com o usuário. É usada para receber a entrada de dados e apresentar o resultado.
Controller Camada de lógica da Aplicação - É o coração da aplicação. Responsável
por tudo que a aplicação vai fazer. Modela os dados e o comportamento por atrás do processo de negócios. Preocupa-se apenas com o armazenamento, manipulação e geração de dados. É um encapsulamento de dados e de comportamento independente da
apresentação.
![Page 46: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/46.jpg)
Exemplo MVC
![Page 47: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/47.jpg)
PHP e extJS Biblioteca JavaScript Foi criado para ser uma extensão do Yahoo! User
Interface (YUI) Por ser JavaScript pode ser interpretada por
qualquer navegador
![Page 48: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/48.jpg)
PHP e extJS
![Page 49: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/49.jpg)
PHP e jQuery Tudo começou com esse post:
Onde o autor descrevia sua insatisfação com a grande quantidade de código que se tinha que escrever para obter resultados simples através da linguagem JavaScript e apresentava ao mundo um modelo simplificado de se desenvolver web sites com interfaces ricas.
![Page 50: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/50.jpg)
PHP e jQuery
![Page 51: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/51.jpg)
PHP e jQuery
![Page 52: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/52.jpg)
Considerações Finais PHP é uma linguagem robusta e dinâmica Altamente profissional O bom desenvolvedor :
Conhece várias linguagens Nã0 se apega a tecnologia Se apega a boas práticas e resultados Está atento diariamente ao que está acontecendo Recomendação de estudo:
Muita orientação a objetos Padrões de Projeto Extreme Program Metodologias Ágeis
![Page 53: Apresentação faef](https://reader031.vdocuments.com.br/reader031/viewer/2022012308/5596377f1a28abe9148b4743/html5/thumbnails/53.jpg)