Prof. Msc. Vitor Mesaque A. Lima

Slides:



Advertisements
Apresentações semelhantes
Mini-curso desenvolvendo aplicações com Zend Framework
Advertisements

ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Paulo Marques Hernâni Pedroso
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Engenharia de Software
SCC Bancos de Dados e Suas Aplicações
Linguagens de programação
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material I-Bimestre Introdução Programação.
Tecnologia para Web JavaScript
Prof.: Carlos Hairon R. Gonçalves
WebWork e JSP Keven andrade
Sistema de Gestão de Manutenção
Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira.
DESENVOLVIMENTO DE COMÉRCIO ELETRÔNICO
Tecnologias para Internet
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Camilo Carromeu Semana Acadêmica de Sistemas de Informação 2008.
Desenvolvimento de Projetos e Aplicações Web
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Programação Web com PHP
Rodrigo Cristiano Silva
Aula R Prof. Naércio Filho Técnico em Informática
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Selenium Componentes: Fábio Gomes Claver Pari Eni Conde
Programação para estrutura Cliente-Servidor
Tópicos avançados em internet A
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Rodrigo Cristiano Silva
Introdução ao Framework Django
Conceitos de J2EE para a WEB
ASP (Active Server Pages)
Desenvolvimento de WEB sites com PHP Breno Leonardo Gomes de Menezes Araújo
Prof. Alexandre Monteiro Recife
Professor: Márcio Amador
FaculdadePitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan.
Programação Orientada à Objetos
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Curso Técnico em Informática Disciplina: Programação Web 2 - PHP
Felipe Ferreri Tonello
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Configuração do Ambiente de programação
Implementação MVC Pedro Antonino.
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
PROGRAMAÇÃO WEB AULA 01 Prof. Gustavo Linhares
Aula 4 Prof. Naércio Filho Técnico em Informática
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Introdução ao ASP.Net 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
PHP – Aula01 Ferramentas -Web.
SQLite Banco de Dados II.
Linguagem de programação. Histórico  Concebida em 1993 por Yukihiro Matsumoto  Primeiro livro em inglês saiu em setembro de 2000  Ruby on Rails é lançado.
Trabalho de Seminários em Informática
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução a Aplicações Web.
Treinamento PHP Módulo 1 PHP Básico Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
PHP vs java Pontos fortes e fracos;
Programação para Internet
Desenvolvimento de Sites Dinâmicos para Web Prof. Anderson M. Fernandes Mestrando em Informática.
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Aula 1 Introdução à Programação WEB I PHP, ASP e JSP
Módulo II Capítulo 1: Orientação a Objetos
Aula 5 – Formulários GET – POST - REQUEST
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
APRESENTAÇÃO DA DISCIPLINA
Programação para Web I AULA 2 BANCO DE DADOS.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Aula 11 Orientação a Objeto (OO)
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Apresentação PHP Grupo: Willian Meier, Daniel Hille, Pedro Barbosa.
Transcrição da apresentação:

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

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.

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

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

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

PHP- Arquitetura PHP + Apache Banco de Dados HTML

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

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

Quais as vantagens de usar PHP? Comunidade PHP possui uma comunidade grande O site http://php.net/ 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.

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

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

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

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

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

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

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

Vetores e Matrizes Programação para Web

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

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

Loops Programação para Web

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

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

Manipulação de Arquivos try { if (!file_exists ($path) && !@mkdir ($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

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

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

Trabalhando com Sessões Programação para Web

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

Criando uma classe Programação para Web

Atributos e Métodos Programação para Web

Criando uma sub-classe Programação para Web

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

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

Classes Abstratas Programação para Web

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

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, http://www.example.com/test.php?id=3 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

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

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

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

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

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

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

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

Utilizando o PDO Programação para Web

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

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

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

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

“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

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

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 e-mails, 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

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

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 http://codeigniter.com/ Programação para Web

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 http://www.zend.com/ Programação para Web

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 http://cakephp.org/ Programação para Web

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” http://www.symfony-project.com/ Programação para Web

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

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

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

Titan Framework - Documentação http://titanframework.com/ Paradigma de desenvolvimento de software livre: baseado no conceito de comunidade Lista de discussão: http://groups.google.com.br/group/titan-framework