A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PHP Prof. Msc. Vitor Mesaque A. Lima. Atualmente é a linguagem de programação Web mais utilizada pelos desenvolvedores Apesar do surgimento de frameworks.

Apresentações semelhantes


Apresentação em tema: "PHP Prof. Msc. Vitor Mesaque A. Lima. Atualmente é a linguagem de programação Web mais utilizada pelos desenvolvedores Apesar do surgimento de frameworks."— Transcrição da apresentação:

1 PHP Prof. Msc. Vitor Mesaque A. Lima

2 Atualmente é a linguagem de programação Web mais utilizada pelos desenvolvedores Apesar do surgimento de frameworks confortáveis em outras linguagens, tais como o Ruby on Rails e o.NET, o surgimento de aplicações super-populares como o Wordpress fazem do PHP um requisito fundamental no desenvolvimento Web. Introdução

3 PHP é uma linguagem de scripts de propósito geral que é especialmente adequada ao desenvolvimento Web e pode ser embutida em HTML PHP é uma linguagem de script do lado do servidor, ou seja, todos os dados são interpretados e enviados para o navegador antes da página Web ser carregada O que é PHP?

4 PHP PHP: um acrônimo recursivo para PHP: Hypertext Preprocessor – É uma linguagem de programação de computadores interpretada – Utilizada para gerar conteúdo dinâmico na Web – Linguagem server-side – Orientada a objetos – Código-fonte aberto e livre PHP O PHP pode ser embutido no HTML, sempre para gerar mais HTML Programação para Web4

5 O que é PHP? HTML é 100% estático Com a implementação do PHP em seu código, pode-se criar sites dinâmicos O PHP pode ser embutido dentro do HTML, e vice-versa – Não importa o quão complicado é o PHP, sua saída será um HTML simples Sua sintaxe é muito semelhante à de outras linguagens: ASP.NET, Perl, JavaScript, C, C++, C#, etc

6 PHP- Arquitetura PHP + Apache HTML Banco de Dados

7 1.Fácil curva de aprendizado – Quanto menos tempo você gastar procurando o manual e estudando a linguagem, mais tempo o desenvolvedor terá para criar e otimizar sua aplicação – Uma das melhores características do PHP é que é extremamente fácil de aprender em comparação a outras linguagens – A sintaxe é indiscutivelmente lógica e muitas das funções comuns fazem exatamente o que descrevem Vantagens

8 2.Sintaxe familiar – PHP é uma linguagem excelente para desenvolvedores com experiência em programação, especialmente de programação em C e Perl, nas quais a sintaxe do PHP é baseada 3.Custo – É livre e open source 4.Performance – PHP é uma linguagem de programação Web eficiente Quais as vantagens de usar PHP?

9 5.Comunidade – PHP possui uma comunidade grande – O site possui documentação aprofundada e abrangente. Além disso, existem milhares de fóruns e sites de ajuda. Por ser open source, há muito desenvolvimento colaborativo, sendo a linguagem constantemente melhorada. Quais as vantagens de usar PHP?

10 PHP - Histórico 1994: surgiu como um pacote de programas CGI criados por Rasmus Lerdof, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal 1997: foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL 1998: PHP 3 de Zeev Suraski contava recursos de OO 2000: Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, com mais recursos de OO 2004: PHP 5 que está mais OO Programação para Web10

11 Introdução Após instalar o PHP – LAMP (Linux, Apache, MySQL e PHP) – WAMP (Windows, Apache, MySQL e PHP) – MAMP (Mac, Apache, MySQL e PHP) Crie seu primeiro arquivo PHP. Normalmente o Apache é configurado para procurar a sintaxe PHP em arquivos com a extensão.php – Para avisar o servidor que estamos trabalhando com PHP, é necessário usar a seguinte sintaxe ao adicionar PHP em seus documentos HTML: Programação para Web11

12 Introdução PHP é case-sensitive; PHP não é white-space sensitive; Cada linha deve terminar com ponto-e-vírgula; – Quando temos uma única declaração não é necessário. Comentários podem ser inseridos assim: Programação para Web12

13 Introdução - Definindo Variáveis Declaramos uma variável em PHP utilizando o símbolo $ São dinamicamente tipadas Programação para Web13

14 Combinando HTML com PHP Minha primeira página dinâmica Fulano ; ?> Programação para Web14

15 Definindo uma função Programação para Web15

16 Vetores e Matrizes Vetores e matrizes em PHP estão organizadas em pares "chave" e "valor" – Existem três tipos de matrizes: associativa, numérica, e multidimensionais Matrizes associativas é uma maneira de colocar uma chave que seja relacionada semânticamente ao valor Matrizes numéricas são criadas por padrão quando não definimos a chave Matrizes multidimensionais são simplesmente arrays dentro de arrays Programação para Web16

17 Vetores e Matrizes Programação para Web17

18 Principais Funções de Arrays array_key_exists array_keys in_array array_merge array_pop array_shift arsort asort Programação para Web18 count reset implode explode

19 Loops while while (condição) { bloco_de_comandos } do do { bloco_de_comandos } while (condição); for for (inicializador ; condição ; incremento) { bloco_de_comandos } foreach foreach (vetor as chave => valor) { bloco_de_comandos } Programação para Web19

20 Loops Programação para Web20

21 Outros Conceitos Básicos Variáveis globais (uso da palavra-chave global em funções) Variáveis estáticas (uso da palavra-chave static) Variáveis dinâmicas ($var) Constantes (define ()) Constantes reservadas: __LINE__, __FUNCTION__ e __METHOD__ Principais operadores Programação para Web21

22 Funções de Manipulação de Arquivos file file_get_contents file_put_contents copy unlink fopen fread fwrite Programação para Web22 fflush fclose file_exists is_readable is_writable feof

23 Manipulação de Arquivos try { if (!file_exists ($path) && ($path, 0777)) throw new Exception ('Impossível criar diretório'); $fd = fopen ($path.'log.'. date ('Ym'), 'a'); if (!$fd) throw new Exception (Erro abrir/criar arquivo!'); if (!fwrite($fd, date('d-m-Y H:i:s')."] ". $msg."\n")) throw new Exception (Erro ao gravar no arquivo!'); fclose ($fd); } catch (Exception $e) { die ($e->getMessage ()); } Programação para Web23

24 Funções de Manipulação de Cookies bool setcookie ( string $nome, string $valor, int $expira, string $caminho, string $domínio, bool $seguro, bool $somente http ) Programação para Web24 username jsilva time () + 60 * 60 * 24 * 30 admin/ admin.site.com.br 1

25 Manipulação de Cookies Programação para Web25

26 Trabalhando com Sessões Programação para Web26

27 Orientação a Objetos PHP é muito mais do que uma linguagem de script, é uma linguagem de programação plenamente desenvolvida capaz de construir aplicações muito complexas OOP representa Programação Orientada a Objetos – É um paradigma de programação onde você criar "objetos" para trabalhar – Esses objetos podem ser adaptados às suas necessidades específicas, para atender diferentes tipos de aplicações, mantendo a mesma base de código – Ao dominar o poder total da programação Orientada a Objetos, você pode reduzir o tempo de codificação e usá- lo para construir WebApps melhores Programação para Web27

28 Criando uma classe Programação para Web28

29 Atributos e Métodos Programação para Web29

30 Criando uma sub-classe Programação para Web30

31 Outros Conceitos de OO no PHP No PHP 5, toda atribuição de variáveis do tipo objeto é por referência. Para criar cópias deve-se utilizar a palavra-chave clone – Uma interface funciona como se fosse um contrato, contendo todas as regras que uma classe que a implementa deve conter para ser plenamente aceita. No PHP, são declaradas por meio da palavra-chave interface. O PHP 5 aceita indução de tipo nos parâmetros de métodos de classes (apenas array e object) Programação para Web31

32 Classes Abstratas Declarada por meio da palavra-chave abstract Não é permitido instanciá-las – Qualquer classe que contiver pelo menos um método que seja abstrato deverá ser declarada como abstrata – Podem conter tantos métodos concretos quanto abstratos, sendo que estes últimos devem ser codificados pela classe concreta que a estende – Quando uma classe abstrata estende uma interface, não precisa codificar seus métodos Programação para Web32

33 Classes Abstratas Programação para Web33

34 Métodos gerais __construct __destruct __call __get __set __isset __unset __toString __clone Programação para Web34

35 Passagem de parâmetros por GET e POST Quando um formulário é submetido para um script PHP, qualquer variável do formulário será automaticamente disponibilizada para ele. – O metodo GET obtem os dados da QUERY_STRING Por exemplo, contém os dados GET que serão acessíveis com $_GET['id'] – O PHP entende arrays no contexto de variáveis de formulários. Pode- se agrupar variáveis relacionadas juntas, ou usar esse recurso para receber valores de um campo de seleção múltipla. Programação para Web35

36 Passagem de parâmetros por GET e POST Programação para Web36

37 PDO: Conexão com Banco de Dados PDO (PHP Data Objects) é um módulo de PHP montado sob o paradigma Orientado a Objetos e cujo objetivo é prover uma padronização da forma com que PHP se comunica com um banco de dados relacional – Apenas para PHP 5. – É uma interface que define um conjunto de classes e a assinatura dos métodos de comunicação com uma base de dados. – Cada sistema gerenciador de bancos de dados (SGBD) pode prover um driver para PDO. – Apesar de PDO definir a assinatura dos métodos que cada driver deve implementar, alguns recursos podem não ser suportados. Por exemplo, algumas engines do SGBD MySQL não dão suporte a transações, logo o método "beginTransaction" simplesmente não terá efeito sob tais condições. Programação para Web37

38 PDO PDO não é uma camada de abstração de SQL – Portanto, usar PDO não significa que seu sistema será portável entre diferentes SGBDs – Utilizar PDO tende a ser mais simples do que utilizar biblioteca de funções, mas continua exigindo conhecimento da sintaxe SQL específica do modelo de SGBD envolvido. Programação para Web38

39 Conexão com MySQL antes do PDO Programação para Web39

40 Conexão com PostgreSQL antes do PDO Programação para Web40

41 Conexão com MySQL com PDO Programação para Web41

42 Utilizando o PDO Após abrir uma conexão, as consultas podem ser feitas de duas maneiras: 1.Através da própria conexão, com o método "exec" ou o "query"; 2.Montando uma prepared statement com o método "prepare", que devolve um objeto da classe PDOStatement, e depois executando o método "execute" (desta classe). Programação para Web42 $inseriu = $pdo->exec ('INSERT INTO logs (operacao) VALUES (1)'); $ultimo_id = $pdo->lastInsertId();

43 Utilizando o PDO Programação para Web43

44 Obtenção padronizada de erros ocorridos em consultas, através do método "errorInfo" e "errorCode" da classe PDO e PDOStatement – Suporte a inicialização e encerramento de transações de forma padronizada (esta funcionalidade depende do suporte do SGBD), através dos métodos "beginTransaction", "commit" e "rollBack Outros benefícios do PDO 44Programação para Web

45 Outros benefícios do PDO – Suporte para trabalhar com handle de arquivos para realizar inserções ou consultas a grandes volumes de dados, para economizar memória Isso acontece pois a própria classe PDO fica responsável por transmitir o arquivo "aos poucos", sem precisar carregá-lo inteiramente na memória, como seria feito da forma tradicional Um handle de arquivo utiliza uma variável do tipo resource, que funciona como um "ponteiro" para o arquivo Programação para Web45

46 Tratamento de Exceções Programação para Web46

47 Arrays Superglobais $GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV Programação para Web47

48 FRAMEWORKS PHP Algumas vezes a programação se torna monótona e/ou repetitiva, e é aí que um framework pode ajudar Thiago Dutra da Fonseca Belem Programação para Web48

49 Os frameworks são definidos como aplicações semi-completas e reutilizáveis que, quando especializadas, produzem aplicações personalizadas dentro de um domínio específico Foote e Johnson (1988). – É uma estrutura, ou uma fundação, para criar a aplicação – Permite o desenvolvimento rápido de aplicações, economizando tempo e ajudando a criar aplicações mais sólidas e seguras, além de reduzir a quantidade de código repetido [conceito: DRY] O que é um framework? 49Programação para Web

50 Principal motivo: agilizar o processo de desenvolvimento Re-utilização de código: o framework já traz uma série de módulos pré-configurados (envio de s, conexão com o banco de dados, sanitização de dados, proteção contra ataques, etc) Estabilidade: a simplicidade, que é um dos grandes "feitos" do PHP, também é o que possibilita inúmeros erros e falhas pelos principiantes Por que usar um framework PHP? 50Programação para Web

51 Características desejáveis: – MVC: Arquiteura baseada em Model-View-Controller. – Multiple DBs: Suporte a conexões com diversos SGBDs distintos. – ORM: Suporte a object-record mapper (geralmente uma implementação do ActiveRecord) – DB Objects: Suporte a padrões de projeto que abstraiam SQL (TableGateWay) – Templates: Possuir uma template engine embutida – Caching: Suporte a caching – Validation: Possuir um componente de validação de dados – Ajax: Suporte nativo a Ajax – Auth Module: Suporte nativo a autenticação de usuários – Modules: Suporte a adição de novos módulo, tais como RSS feed parser, PDF module ou qualquer outra coisa útil – EDP: Event Driven Programming Principais frameworks PHP 51Programação para Web

52 O CodeIgniter é um framework leve e fácil de usar, adequado para ambientes de hospedagem compartilhada por consumir poucos recursos – Está bem documentado e oferece uma biblioteca com vídeos-tutoriais ensinando as suas funcionalidades – É adequado para programadores iniciantes Principais frameworks PHP: CodeIgniter 52Programação para Web

53 O framework da Zend foca na criação de aplicativos complexos e possui uma grande comunidade de desenvolvimento contribuindo para a sua construção – Dependendo de como desenvolver a sua aplicação, poderá torná-la um pouco pesada, por isto é necessário um conhecimento um pouco mais avançado para tirar o melhor proveito desta ferramenta poderosa Principais frameworks PHP: Zend Framework 53Programação para Web

54 CakePHP poderia ser chamado de PHP on Rails, pois segue princípios utilizados em Ruby on Rails – É focado no desenvolvimento rápido de aplicativos – Recentemente tem se tornado muito famoso por sua simplicidade e facilidade de uso Principais frameworks PHP: CakePHP 54Programação para Web

55 O framework Symfony se encaixa para programadores mais experientes, que desenvolvem aplicativos para uso corporativo – Também segue a filosofia do Rails Principais frameworks PHP: Symfony 55Programação para Web

56 O Titan é um framework para instanciação de CMSs (Content Management Systems), ou seja, gerenciadores de conteúdo, para sistemas Web – A proposta do Titan Framework é ser uma solução simples e completa para a instanciação de gerenciadores de conteúdo de forma rápida e fácil. – Conceito lógico de navegação (Seções e Ações) – Seções podem ser organizadas visualmente em um conceito de pais e filhos Titan Framework 56Programação para Web

57 Listas com Busca, Paginação e Ordenação Sistema de upload de arquivos completo Criação de páginas ricas (FCK) RSS para monitoramento Sistema de Cache (XMLs parseados) Chat Uso extensivo de XML – Cache para performance Controle de versões Criação de repositórios privados – Permite a criação de seus próprios componentes, tipos e templates Sistema de alertas Sistema de Log Gráficos quantitativos automáticos Ajax Totalmente OO (PHP 5) Lançamento de exceções para controle de regras de negócios, validação e erros Titan Framework - Características 57Programação para Web

58 Núcleo (Core) independente e imutável em função de instâncias – Desenvolvimento e aprimoramento constante, mas legado Titan Framework - Arquitetura 58Programação para Web

59 Titan Framework - Documentação Paradigma de desenvolvimento de software livre: baseado no conceito de comunidade Lista de discussão: framework


Carregar ppt "PHP Prof. Msc. Vitor Mesaque A. Lima. Atualmente é a linguagem de programação Web mais utilizada pelos desenvolvedores Apesar do surgimento de frameworks."

Apresentações semelhantes


Anúncios Google