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

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

Prof. Msc. Vitor Mesaque A. Lima

Apresentações semelhantes


Apresentação em tema: "Prof. Msc. Vitor Mesaque A. Lima"— Transcrição da apresentação:

1 Prof. Msc. Vitor Mesaque A. Lima
PHP Prof. Msc. Vitor Mesaque A. Lima

2 Introdução 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.

3 O que é PHP? 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

4 O que é 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 O PHP pode ser embutido no HTML, sempre para gerar mais HTML Programação para Web

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 Banco de Dados HTML

7 Vantagens 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

8 Quais as vantagens de usar PHP?
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 Custo É livre e open source Performance PHP é uma linguagem de programação Web eficiente

9 Quais as vantagens de usar PHP?
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.

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 Web

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: <?php ...aqui vai o código... ?> <?php echo “Olá mundo!”; ?> <?= ‘Olá mundo!’ ?> Programação para Web

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: <?php # This is a single line comment. // This is the most common way of commenting out your code. /* Here is a way to comment over multiple lines. This is the exact same way that you would comment in CSS */ ?> Programação para Web

13 Introdução - Definindo Variáveis
Declaramos uma variável em PHP utilizando o símbolo ‘$’ São dinamicamente tipadas <?php $myVar = ‘Isto é PHP em ação!’; echo $myVar; ?> <?php $myVar = ‘Isto é PHP em ação!’; $myVar = $myVar . ‘ Meu nome é Fulano de TAl.’; echo $myVar . ‘Minha página é fulanotal.com’; ?> Programação para Web

14 Combinando HTML com PHP
<html> <header> <title>Minha primeira página dinâmica</title> </header> <body> <p> <?php echo ‘Hoje é dia ’ . date (‘d-m-Y’) . ‘!’; ?> </p> <?php echo ‘Meu nome é <strong>Fulano</strong>’; ?> </body> </html> Programação para Web

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

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 Web

17 Vetores e Matrizes Programação para Web

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

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

20 Loops Programação para Web

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 Web

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

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 Web

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 ) “username” “jsilva” time () + 60 * 60 * 24 * 30 “admin/” “admin.site.com.br” 1 Programação para Web

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

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

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 Web

28 Criando uma classe Programação para Web

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

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

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 Web

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 Web

33 Classes Abstratas Programação para Web

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

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 Web

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

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 Web

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 Web

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

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

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

42 Utilizando o PDO Após abrir uma conexão, as consultas podem ser feitas de duas maneiras: Através da própria conexão, com o método "exec" ou o "query"; 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). $inseriu = $pdo->exec ('INSERT INTO logs (operacao) VALUES (1)'); $ultimo_id = $pdo->lastInsertId(); Programação para Web

43 Utilizando o PDO Programação para Web

44 Outros benefícios do PDO
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“ Programaçã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 Web

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

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

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

49 O que é um framework? “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] Programação para Web

50 Por que usar um framework PHP?
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 Programação para Web

51 Principais frameworks PHP
Características desejáveis: MVC: Arquiteura baseada em Model-View-Controller. Multiple DB’s: 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 Programação para Web

52 Principais frameworks PHP: CodeIgniter
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 Programação para Web

53 Principais frameworks PHP: Zend Framework
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 Programação para Web

54 Principais frameworks PHP: CakePHP
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 Programação para Web

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

56 Titan Framework 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 Programação para Web

57 Titan Framework - Características
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 Programação para Web

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

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


Carregar ppt "Prof. Msc. Vitor Mesaque A. Lima"

Apresentações semelhantes


Anúncios Google