Introdução ao PHPIntrodução ao PHPIntrodução ao PHPIntrodução ao PHP
Edgar Rodrigues Sandi
@EdgarSandi@EdgarSandi
edgar@season.com.br
@EdgarSandi
Gerente de projetos
Utiliza principalmente as linguagens PHP e Java
para desenvolvimento
Ministra os treinamentos:
◦ Linguagens de Programação
PHP I – Fundamentos ( Oficial Zend )PHP I – Fundamentos ( Oficial Zend )
PHP II – Estruturas Superiores ( Oficial Zend )
Academia do Programador ( Oficial Globalcode )
◦ Bancos de Dados (MySQL / PostgreSQL e Oracle)
◦ MS Project
◦ WebDesign (Suíte Adobe)
Instrutor homologado Globalcode
@EdgarSandi
Quem é a Season Treinamentos?Season Treinamentos?Season Treinamentos?Season Treinamentos?
A Season TreinamentosSeason TreinamentosSeason TreinamentosSeason Treinamentos é o único centroA Season TreinamentosSeason TreinamentosSeason TreinamentosSeason Treinamentos é o único centro
autorizado a realizar treinamentos oficiais
das tecnologias Zend no Brasil.
Treinamentos oficiais:
@EdgarSandi
Treinamentos oficiais:
◦ PHP I – Fundamentos◦ PHP I – Fundamentos
◦ PHP II – Estruturas Superiores
Próximos treinamentos oficiais:
◦ Zend Framework
◦ Zend Server
◦ Zend Studio
◦ Preparatório para as certificações ZCE e ZFC
@EdgarSandi
Treinamentos oficiais em São Paulo:
PHP I - Fundamentos PHP II – Estruturas Superiores
@EdgarSandi
PHP I - Fundamentos
Treinamento Oficial Zend
Carga Horária
24 horas
Próximas Turmas
São Paulo/SP
28.02.2011 Seg. à Ter. - Integral
PHP II – Estruturas Superiores
Treinamento Oficial Zend
Carga Horária
40 horas
Próximas Turmas
São Paulo/SP
28.03.2011 Seg. à Sex. - Integral
Próximos minicursos em São Paulo:
Recursos avançados / Orientação a Objetos
@EdgarSandi
Carga Horária dos minicursos
3 horas
Recursos avançados / Orientação a Objetos
23.02.2011 Quarta feira – 19h
Segurança no PHP
30.03.2011 Quarta feira – 19h
Frameworks PHP
27.04.2011 Quarta feira – 19h
A certificação ZCE
25.05.2011 Quarta feira – 19h
Quem é ZendZendZendZend Technologies?Technologies?Technologies?Technologies?
◦ ZendZendZendZend é uma empresa norte-americana fabricante de◦ ZendZendZendZend é uma empresa norte-americana fabricante de
software.
◦ Seus produtos são orientados para a plataforma
PHP com ênfase no gerenciamento e melhoria do
desempenho de aplicações web utilizando esta
tecnologia.
@EdgarSandi
Produtos oferecidos:
◦ Zend Server e Zend Server CE,◦ Zend Server e Zend Server CE,
◦ Zend Studio,
◦ Zend Guard e
◦ Zend Cloud Platform.
@EdgarSandi
Zend Server é um servidor de aplicação WEB
completo e pronto para organizações rodar ecompleto e pronto para organizações rodar e
gerenciar aplicações PHP que exijam um alto
nível de segurança, performance e
confiabilidade em ambiente Linux, Windows
ou IBM i
@EdgarSandi
Zend Studio é um IDE (Integrated
Development Environment) profissional paraDevelopment Environment) profissional para
PHP.
Ele foi projetado para maximizar a
produtividade do desenvolvedor, permitindo
desenvolver, manter, resolver problemas de
aplicações rapidamente e melhorar a
colaboração em equipe.
@EdgarSandi
O Zend Guard é a solução mais completa para
proteger e distribuir aplicações PHP.
Combina uma excelente proteção do código a umCombina uma excelente proteção do código a um
sistema de administração de licenças flexível.
Zend Guard permite um gerenciamento e
distribuição de suas aplicações PHP de forma
confiável e segura.
Possui dois componentes básicos: Zend Guard
Encoder e o Zend Guard License Manager.
@EdgarSandi
O Zend Cloud Plataform inclui todos os
componentes necessários para o êxito docomponentes necessários para o êxito do
desenvolvimento, funcionamento e
dimensionamento de aplicativos críticos de
negócios PHP na nuvem.
@EdgarSandi
Projetos patrocinados
◦ Zend Engine,◦ Zend Engine,
◦ Zend Framework,
◦ Eventos e outros
@EdgarSandi
Zend Engine é o coração do PHP, originalmente
escrito por Andi Gutmans e Zeev Suraski.
A primeira versão da Zend Engine foi liberadaA primeira versão da Zend Engine foi liberada
com o PHP4.
A Zend patrocina alguns desenvolvedores para
contribuir ativamente, enquanto o principal de
desenvolvimento do Zend Engine hoje vem de
colaboradores para o projeto PHP.
@EdgarSandi
Zend Framework é open-source, orientado a
objetos, usado para criar aplicação web eobjetos, usado para criar aplicação web e
escrito em PHP5.
Utiliza padrões MVC, Design Patterns,
Abstração de SGBD e outros.
@EdgarSandi
Alguns eventos patrocinados
@EdgarSandi
Introdução ao PHPIntrodução ao PHPIntrodução ao PHPIntrodução ao PHP
@EdgarSandi
Breve história do PHPBreve história do PHPBreve história do PHPBreve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
PHP: HypertextPHP: HypertextPHP: HypertextPHP: Hypertext PreprocessorPreprocessorPreprocessorPreprocessor é uma
linguagem de programação amplamente
utilizada.
Foi originalmente projetado para
desenvolvimento web para produzir páginasdesenvolvimento web para produzir páginas
web dinâmicas .
Criada em 1995, hoje em sua versão 5.x
conta com a Zend Engine 2.0 em seu núcleo e
trás um novo modelo de Objeto assim como
dezenas de novas funcionalidades.
@EdgarSandi
Breve história do PHP
Características do PHPCaracterísticas do PHPCaracterísticas do PHPCaracterísticas do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
Velocidade e robustez
Programação estruturada e Orientada a
Objetos
Portabilidade – independência da plataforma
- (WORA - write once, run anywhere)- (WORA - write once, run anywhere)
Tipagem fraca
Sintaxe similar ao C/C++ e ao PERL
Curva de aprendizagem curta
Seu uso é principalmente como Server-side
@EdgarSandi
PHP pode ser usado de três formas:
◦ Server-side scripting
◦ Command-line scripting
◦ Client-side GUI applications
@EdgarSandi
Suporte aos protocolos IMAP, POP3, SNMP,
FTP e NNTP
Suporte ao padrão XML (SAX, DOM, XSLT)
Suporte ao .NET
Funções para a geração de documentos emFunções para a geração de documentos em
PDF
Funções LDAP
Funções para Shockwave Flash
Suporte a CORBA para objetos distribuídos
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHPVantagens do PHPVantagens do PHPVantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
Multi-plataforma
Diversos servidores rodam o PHP
Interage com uma grande quantidade de
banco de dados
Open-sourceOpen-source
@EdgarSandi
Liberdade de escolha
Geração de imagens, gráficos e animações
Flash criados dinamicamente, on-the-fly.
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3Novidades da versão 5.3Novidades da versão 5.3Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
Namespace
Lambdas e closure
Phar – PHP Arquiver
Late StaticBinding
GC (Garbage Colector)GC (Garbage Colector)
Mysqlnd – MySQL Native Driver e
Outras melhorias
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHPFuncionalidades do PHPFuncionalidades do PHPFuncionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
Orientação a objetos
Sessões
PDO
Funções internas
Suporte a Internacionalização i18nSuporte a Internacionalização i18n
Suporte a Localização l10n
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHPMitos sobre o PHPMitos sobre o PHPMitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
O PHP é lento
O PHP é inseguro
O PHP é difícil de integrar
Existem poucas ferramentas
O PHP é uma linguagem imatura
O PHP foi feito para sites pessoaisO PHP foi feito para sites pessoais
A migração para novas versões é difícil
O PHP não possui Orientação a Objetos
O PHP incentiva a produção de código sujo
O PHP não suporta grande número de requisições
O PHP não está pronto para o mercado corporativo
É possível recuperar o código fonte PHP de um site
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHPGrandes sites que utilizam o PHPGrandes sites que utilizam o PHPGrandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
@EdgarSandiFonte: Google
@EdgarSandiFonte: Google
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
@EdgarSandiFonte: Zend.com
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHPFrameworks PHPFrameworks PHPFrameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
Yii
Codeigniter
Zend
CakePHP
SymphonySymphony
PHPDevShell
Prado
Akelos
Zoop
QPHP
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
OOOO ZendZendZendZend FrameworkFrameworkFrameworkFramework
Sintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
ZendZendZendZend FrameworkFrameworkFrameworkFramework é um framework para
aplicações Web de código aberto, orientado a
objetos e implementado em PHP 5.
O Zend Framework segue o padrão MVC
Suporte a webservicesSuporte a webservices
Segue as boas práticas do desenvolvimento
Diversas implementações de API externas
Implementa diversos Design Patterns
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHPSintaxe do PHPSintaxe do PHPSintaxe do PHP
Exemplos de código em PHP
O PDO
@EdgarSandi
Iniciando um código em PHP
◦ As maneiras de abrir e fechar um código PHP são:
<? e ?> => (short_open_tag)
<% e %> => (asp_tags)
<?php e ?> => (recomendável)
<script language="php"> => (pouco utilizado)
Separador de instruções
◦ Entre cada instrução em PHP é preciso utilizar o
ponto-e-vírgula, assim como em C, Perl e outras
linguagens mais conhecidas.
@EdgarSandi
Nomes de variáveis
◦ Toda variável em PHP tem seu nome composto pelo
caracter $ e uma string, que deve iniciar por uma
letra ou o caracter "_".
◦ PHP é case sensitive, ou seja, as variáveis $vivas e
$VIVAS são diferentes.$VIVAS são diferentes.
Comentários
◦ Comentários de uma linha
// ou # inserido no início da linha a ser comentada
◦ Comentários em bloco de linhas
/* inserido no início do bloco de linhas a ser
comentados e ao final inserir o */
@EdgarSandi
Comentários PHPDoc
◦ O PHPDoc ou PHPDocumentor foi baseado no
JAVADoc e tem como objetivo padronizar a
documentação de códigos PHP.
◦ A partir da análise do código fonte ele extrai as
tags especiais do PHPDoc iniciadas com @ e gera atags especiais do PHPDoc iniciadas com @ e gera a
documentação do código.
◦ Seu download pode ser feito em phpdoc.org
◦ Sua sintaxe é parecida com a do comentário em
bloco:
/** // inicia com dois asteriscos
@...
*/
@EdgarSandi
Olá mundo em PHP:
<?php
echo "Olá Mundo";
?>
@EdgarSandi
Atribuindo valores a variáveis
<?php
$mensagem = "Atribuindo um valor no
PHP";
echo $mensagem;echo $mensagem;
// Comentário de uma linha
# Este comentario também é de uma
linha
/* Este é um comentário de bloco
de linhas */
?>
@EdgarSandi
Tipos de dados suportados no PHP
O PHP suporta oito tipos primitivos.
◦ São quatro tipos básicos:
boolean, integer, float e string
◦ Dois tipos compostos:◦ Dois tipos compostos:
array e object
◦ E finalmente dois tipos especiais:
Resource
NULL
@EdgarSandi
Inicialização de variáveis no PHP
Valores padrões de variáveis não inicializadas
◦ Padrão de booleanos é FALSE;FALSE;FALSE;FALSE;
◦ Inteiros e ponto-flutuantes é zero;
◦ Strings são definidas como uma string vazia e◦ Strings são definidas como uma string vazia e
◦ Arrays tornam-se um array vazio.
@EdgarSandi
Manipulação de tipos no PHP
◦ O PHP não requer (ou suporta) a definição de tipo
explícita na declaração de variáveis: o tipo de uma
variável é determinado pelo contexto em que a
variável é utilizada.
Ex.:Ex.: $a = 2; // $a é inteiro
$a = "PHP"; // $a é string
$a = true; // $a é booleano
$a = 2 + "1PHP"; // $a é inteiro
@EdgarSandi
Conversão de tipos no PHP (Type casting)
◦ A conversão de tipos no PHP funciona como no C: o
nome de um tipo desejado é escrito entre parênteses
antes da variável em que se deseja a moldagem.
◦ Ex.: $a = 5; // $a é inteiro
$a = (boolean) $a; // $a é booleano$a = (boolean) $a; // $a é booleano
Principais conversões permitidas:
◦ (int), (integer) – converte para inteiro
◦ (bool), (boolean) - converte para booleano
◦ (float), (double), (real) – converte para número de ponto
flutuante
◦ (string) - converte para string
@EdgarSandi
Conversão de tipos no PHP
◦ Nota: Ao invés de adicionar um cast de inteiro para
string, você pode apenas envolver a variável com
aspas duplas ""
◦ Ex.: $a = 5; // $a é inteiro
$a = "$a"; // $a é string
@EdgarSandi
Escopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHP
◦ Escopo local
$a = 1;
include 'b.inc';
◦ Escopo local da função◦ Escopo local da função
$a = 1; /* escopo global */
function teste() {
echo $a; /* referencia uma variável do
escopo local (não definida) */
}
teste();
Saída: VAZIO
@EdgarSandi
Escopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHP
◦ A palavra chave global
$a = 1;
$b = 2;
function soma() {function soma() {
global $a, $b;
$b = $a + $b;
}
soma();
echo $b;
Saída: 3
@EdgarSandi
Escopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHP
◦ Usando $GLOBALS no lugar de global
$a = 1;
$b = 2;
function soma () {
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
soma();
echo $b;
Saída: 3
@EdgarSandi
Utilizando variáveis estáticas
function teste (){
$a = 0;
echo $a;
$a++;$a++;
}
teste();
teste();
Saídas: 0
0
@EdgarSandi
Utilizando variáveis estáticas
function teste (){
static $a = 0;
echo $a;
$a++;$a++;
}
teste();
teste(); ...
Saídas: 0
1 ...
@EdgarSandi
Declarando variáveis static
function foo(){
static $int = 0; // correto
static $int = 1 + 2; // errado (é uma
expressão)
static $int = sqrt(121); // errado (é umastatic $int = sqrt(121); // errado (é uma
expressão)
$int++;
echo $int;
}
foo();
Saída: 1
@EdgarSandi
Constantes no PHP
// Nomes de constantes válidos
define("FOO", "alguma coisa");
define("FOO2", "alguma outra coisa");
define("FOO_BAR", "alguma coisa mais");define("FOO_BAR", "alguma coisa mais");
// Nomes de constantes inválidas
define("2FOO", "alguma coisa");
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHPExemplos de código em PHPExemplos de código em PHPExemplos de código em PHP
O PDO
@EdgarSandi
A programação estruturada
<?php
$a = 2; // inteiro
$b = 5; // inteiro
echo $a + $b; // inteiro
?>
Saída: 7
@EdgarSandi
As várias formas de exibir o valor de uma
variável:
<?php
$var = 'Mundo PHP';
// maneira menos eficiente
echo "Olá $var!";echo "Olá $var!";
// maneira mais eficiente
echo 'Olá ' . $var . '!';
// maneira muito eficiente
echo 'Olá ', $var, '!';
?>
Saída: Olá Mundo PHP
@EdgarSandi
A tipagem dinâmica
<?php
$a = 2; // inteiro
$b = "10abc"; // string
echo $a + $b; // inteiro
?>
Saída: 12
@EdgarSandi
Outro exemplo de tipagem dinâmica no PHP
<?php
if (('1 galinha' + '2 pardais') == '3 aves') {
echo 'São iguais!!!';
} else {} else {
echo 'Isso é loucura!';
}
?>
Saída: ????
@EdgarSandi
Breve história do PHP
Características do PHP
Vantagens do PHP
Novidades da versão 5.3
Funcionalidades do PHP
Mitos sobre o PHP
Grandes sites que utilizam o PHP
Empresas que apóiam o PHPEmpresas que apóiam o PHP
Frameworks PHP
O Zend Framework
Sintaxe do PHP
Exemplos de código em PHP
O PDOO PDOO PDOO PDO
@EdgarSandi
PDO é uma extensão do PHP utilizada
para a abstração do acesso ao SGBD.
@EdgarSandi
Abstração do acesso a diversos
bancos de dados
Segurança
Orientado a objetosOrientado a objetos
Expansível
@EdgarSandi
PDO
◦ Representa a conexão
PDOStatementPDOStatement
◦ Representa um comando preparado e um
result set associado
PDOException
◦ Lança uma exceção do banco de dados
@EdgarSandi
MySQL
PostgreSQL
Microsoft SQL Server/Sybase
IBM DB2
OracleOracle
Informix
Firebird
ODBC
SQLite
@EdgarSandi
Resumo
◦ As consultas são compiladas uma vez no
nível do servidor e em seguida os
parâmetros são passados
BenefíciosBenefícios
◦ Maior desempenho
◦ Maior segurança
◦ Mais portátil
@EdgarSandi
O PDO tem suporte a transações
◦ $conn->beginTransaction();
◦ $conn->commit();
◦ $conn->rollBack();◦ $conn->rollBack();
◦ $conn = null;
@EdgarSandi
Uma forma rápida de se recuperar os
dados de uma consulta:
foreach($conn->query("SELECT * FROM users") as $row){
// código
}}
@EdgarSandi
Retornando uma lista de usuários:
try {
$conn = new PDO("mysql:host=$host;dbname=$db",
$user,$pass);
$result = $conn->query('SELECT * FROM users');$result = $conn->query('SELECT * FROM users');
} catch (PDOException $e) {
echo $e->getMessage();
return false;
}
return $result;
@EdgarSandi
Código poderoso.
Classes “Model” e Classes “Controller”.
Diminuir quantidade de código PHP
“misturado” entre tags HTML.
Implementação e uso de Design Patterns.Implementação e uso de Design Patterns.
@EdgarSandi
Esta apresentação será disponibilizada por
link através do perfil @EdgarSandi
@EdgarSandi
Obrigado!
How to Follow: @GrupoSeason, @EdgarSandi,
@Zend, @phpbrasil, @phpsp, @Globalcode
Contato pessoal:
◦ edgar.cbbrasil@gmail.com
◦ @EdgarSandi
@EdgarSandi

Introducao ao PHP @edgarsandi

  • 1.
    Introdução ao PHPIntroduçãoao PHPIntrodução ao PHPIntrodução ao PHP Edgar Rodrigues Sandi @EdgarSandi@EdgarSandi edgar@season.com.br @EdgarSandi
  • 2.
    Gerente de projetos Utilizaprincipalmente as linguagens PHP e Java para desenvolvimento Ministra os treinamentos: ◦ Linguagens de Programação PHP I – Fundamentos ( Oficial Zend )PHP I – Fundamentos ( Oficial Zend ) PHP II – Estruturas Superiores ( Oficial Zend ) Academia do Programador ( Oficial Globalcode ) ◦ Bancos de Dados (MySQL / PostgreSQL e Oracle) ◦ MS Project ◦ WebDesign (Suíte Adobe) Instrutor homologado Globalcode @EdgarSandi
  • 3.
    Quem é aSeason Treinamentos?Season Treinamentos?Season Treinamentos?Season Treinamentos? A Season TreinamentosSeason TreinamentosSeason TreinamentosSeason Treinamentos é o único centroA Season TreinamentosSeason TreinamentosSeason TreinamentosSeason Treinamentos é o único centro autorizado a realizar treinamentos oficiais das tecnologias Zend no Brasil. Treinamentos oficiais: @EdgarSandi
  • 4.
    Treinamentos oficiais: ◦ PHPI – Fundamentos◦ PHP I – Fundamentos ◦ PHP II – Estruturas Superiores Próximos treinamentos oficiais: ◦ Zend Framework ◦ Zend Server ◦ Zend Studio ◦ Preparatório para as certificações ZCE e ZFC @EdgarSandi
  • 5.
    Treinamentos oficiais emSão Paulo: PHP I - Fundamentos PHP II – Estruturas Superiores @EdgarSandi PHP I - Fundamentos Treinamento Oficial Zend Carga Horária 24 horas Próximas Turmas São Paulo/SP 28.02.2011 Seg. à Ter. - Integral PHP II – Estruturas Superiores Treinamento Oficial Zend Carga Horária 40 horas Próximas Turmas São Paulo/SP 28.03.2011 Seg. à Sex. - Integral
  • 6.
    Próximos minicursos emSão Paulo: Recursos avançados / Orientação a Objetos @EdgarSandi Carga Horária dos minicursos 3 horas Recursos avançados / Orientação a Objetos 23.02.2011 Quarta feira – 19h Segurança no PHP 30.03.2011 Quarta feira – 19h Frameworks PHP 27.04.2011 Quarta feira – 19h A certificação ZCE 25.05.2011 Quarta feira – 19h
  • 7.
    Quem é ZendZendZendZendTechnologies?Technologies?Technologies?Technologies? ◦ ZendZendZendZend é uma empresa norte-americana fabricante de◦ ZendZendZendZend é uma empresa norte-americana fabricante de software. ◦ Seus produtos são orientados para a plataforma PHP com ênfase no gerenciamento e melhoria do desempenho de aplicações web utilizando esta tecnologia. @EdgarSandi
  • 8.
    Produtos oferecidos: ◦ ZendServer e Zend Server CE,◦ Zend Server e Zend Server CE, ◦ Zend Studio, ◦ Zend Guard e ◦ Zend Cloud Platform. @EdgarSandi
  • 9.
    Zend Server éum servidor de aplicação WEB completo e pronto para organizações rodar ecompleto e pronto para organizações rodar e gerenciar aplicações PHP que exijam um alto nível de segurança, performance e confiabilidade em ambiente Linux, Windows ou IBM i @EdgarSandi
  • 10.
    Zend Studio éum IDE (Integrated Development Environment) profissional paraDevelopment Environment) profissional para PHP. Ele foi projetado para maximizar a produtividade do desenvolvedor, permitindo desenvolver, manter, resolver problemas de aplicações rapidamente e melhorar a colaboração em equipe. @EdgarSandi
  • 11.
    O Zend Guardé a solução mais completa para proteger e distribuir aplicações PHP. Combina uma excelente proteção do código a umCombina uma excelente proteção do código a um sistema de administração de licenças flexível. Zend Guard permite um gerenciamento e distribuição de suas aplicações PHP de forma confiável e segura. Possui dois componentes básicos: Zend Guard Encoder e o Zend Guard License Manager. @EdgarSandi
  • 12.
    O Zend CloudPlataform inclui todos os componentes necessários para o êxito docomponentes necessários para o êxito do desenvolvimento, funcionamento e dimensionamento de aplicativos críticos de negócios PHP na nuvem. @EdgarSandi
  • 13.
    Projetos patrocinados ◦ ZendEngine,◦ Zend Engine, ◦ Zend Framework, ◦ Eventos e outros @EdgarSandi
  • 14.
    Zend Engine éo coração do PHP, originalmente escrito por Andi Gutmans e Zeev Suraski. A primeira versão da Zend Engine foi liberadaA primeira versão da Zend Engine foi liberada com o PHP4. A Zend patrocina alguns desenvolvedores para contribuir ativamente, enquanto o principal de desenvolvimento do Zend Engine hoje vem de colaboradores para o projeto PHP. @EdgarSandi
  • 15.
    Zend Framework éopen-source, orientado a objetos, usado para criar aplicação web eobjetos, usado para criar aplicação web e escrito em PHP5. Utiliza padrões MVC, Design Patterns, Abstração de SGBD e outros. @EdgarSandi
  • 16.
  • 17.
    Introdução ao PHPIntroduçãoao PHPIntrodução ao PHPIntrodução ao PHP @EdgarSandi
  • 18.
    Breve história doPHPBreve história do PHPBreve história do PHPBreve história do PHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 19.
    PHP: HypertextPHP: HypertextPHP:HypertextPHP: Hypertext PreprocessorPreprocessorPreprocessorPreprocessor é uma linguagem de programação amplamente utilizada. Foi originalmente projetado para desenvolvimento web para produzir páginasdesenvolvimento web para produzir páginas web dinâmicas . Criada em 1995, hoje em sua versão 5.x conta com a Zend Engine 2.0 em seu núcleo e trás um novo modelo de Objeto assim como dezenas de novas funcionalidades. @EdgarSandi
  • 20.
    Breve história doPHP Características do PHPCaracterísticas do PHPCaracterísticas do PHPCaracterísticas do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 21.
    Velocidade e robustez Programaçãoestruturada e Orientada a Objetos Portabilidade – independência da plataforma - (WORA - write once, run anywhere)- (WORA - write once, run anywhere) Tipagem fraca Sintaxe similar ao C/C++ e ao PERL Curva de aprendizagem curta Seu uso é principalmente como Server-side @EdgarSandi
  • 22.
    PHP pode serusado de três formas: ◦ Server-side scripting ◦ Command-line scripting ◦ Client-side GUI applications @EdgarSandi
  • 23.
    Suporte aos protocolosIMAP, POP3, SNMP, FTP e NNTP Suporte ao padrão XML (SAX, DOM, XSLT) Suporte ao .NET Funções para a geração de documentos emFunções para a geração de documentos em PDF Funções LDAP Funções para Shockwave Flash Suporte a CORBA para objetos distribuídos @EdgarSandi
  • 24.
    Breve história doPHP Características do PHP Vantagens do PHPVantagens do PHPVantagens do PHPVantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 25.
    Multi-plataforma Diversos servidores rodamo PHP Interage com uma grande quantidade de banco de dados Open-sourceOpen-source @EdgarSandi
  • 26.
    Liberdade de escolha Geraçãode imagens, gráficos e animações Flash criados dinamicamente, on-the-fly. @EdgarSandi
  • 27.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3Novidades da versão 5.3Novidades da versão 5.3Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 28.
    Namespace Lambdas e closure Phar– PHP Arquiver Late StaticBinding GC (Garbage Colector)GC (Garbage Colector) Mysqlnd – MySQL Native Driver e Outras melhorias @EdgarSandi
  • 29.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHPFuncionalidades do PHPFuncionalidades do PHPFuncionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 30.
    Orientação a objetos Sessões PDO Funçõesinternas Suporte a Internacionalização i18nSuporte a Internacionalização i18n Suporte a Localização l10n @EdgarSandi
  • 31.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHPMitos sobre o PHPMitos sobre o PHPMitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 32.
    O PHP élento O PHP é inseguro O PHP é difícil de integrar Existem poucas ferramentas O PHP é uma linguagem imatura O PHP foi feito para sites pessoaisO PHP foi feito para sites pessoais A migração para novas versões é difícil O PHP não possui Orientação a Objetos O PHP incentiva a produção de código sujo O PHP não suporta grande número de requisições O PHP não está pronto para o mercado corporativo É possível recuperar o código fonte PHP de um site @EdgarSandi
  • 33.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHPGrandes sites que utilizam o PHPGrandes sites que utilizam o PHPGrandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 34.
  • 35.
  • 36.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 37.
  • 38.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHPFrameworks PHPFrameworks PHPFrameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 39.
  • 40.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP OOOO ZendZendZendZend FrameworkFrameworkFrameworkFramework Sintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 41.
    ZendZendZendZend FrameworkFrameworkFrameworkFramework éum framework para aplicações Web de código aberto, orientado a objetos e implementado em PHP 5. O Zend Framework segue o padrão MVC Suporte a webservicesSuporte a webservices Segue as boas práticas do desenvolvimento Diversas implementações de API externas Implementa diversos Design Patterns @EdgarSandi
  • 42.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHPSintaxe do PHPSintaxe do PHPSintaxe do PHP Exemplos de código em PHP O PDO @EdgarSandi
  • 43.
    Iniciando um códigoem PHP ◦ As maneiras de abrir e fechar um código PHP são: <? e ?> => (short_open_tag) <% e %> => (asp_tags) <?php e ?> => (recomendável) <script language="php"> => (pouco utilizado) Separador de instruções ◦ Entre cada instrução em PHP é preciso utilizar o ponto-e-vírgula, assim como em C, Perl e outras linguagens mais conhecidas. @EdgarSandi
  • 44.
    Nomes de variáveis ◦Toda variável em PHP tem seu nome composto pelo caracter $ e uma string, que deve iniciar por uma letra ou o caracter "_". ◦ PHP é case sensitive, ou seja, as variáveis $vivas e $VIVAS são diferentes.$VIVAS são diferentes. Comentários ◦ Comentários de uma linha // ou # inserido no início da linha a ser comentada ◦ Comentários em bloco de linhas /* inserido no início do bloco de linhas a ser comentados e ao final inserir o */ @EdgarSandi
  • 45.
    Comentários PHPDoc ◦ OPHPDoc ou PHPDocumentor foi baseado no JAVADoc e tem como objetivo padronizar a documentação de códigos PHP. ◦ A partir da análise do código fonte ele extrai as tags especiais do PHPDoc iniciadas com @ e gera atags especiais do PHPDoc iniciadas com @ e gera a documentação do código. ◦ Seu download pode ser feito em phpdoc.org ◦ Sua sintaxe é parecida com a do comentário em bloco: /** // inicia com dois asteriscos @... */ @EdgarSandi
  • 46.
    Olá mundo emPHP: <?php echo "Olá Mundo"; ?> @EdgarSandi
  • 47.
    Atribuindo valores avariáveis <?php $mensagem = "Atribuindo um valor no PHP"; echo $mensagem;echo $mensagem; // Comentário de uma linha # Este comentario também é de uma linha /* Este é um comentário de bloco de linhas */ ?> @EdgarSandi
  • 48.
    Tipos de dadossuportados no PHP O PHP suporta oito tipos primitivos. ◦ São quatro tipos básicos: boolean, integer, float e string ◦ Dois tipos compostos:◦ Dois tipos compostos: array e object ◦ E finalmente dois tipos especiais: Resource NULL @EdgarSandi
  • 49.
    Inicialização de variáveisno PHP Valores padrões de variáveis não inicializadas ◦ Padrão de booleanos é FALSE;FALSE;FALSE;FALSE; ◦ Inteiros e ponto-flutuantes é zero; ◦ Strings são definidas como uma string vazia e◦ Strings são definidas como uma string vazia e ◦ Arrays tornam-se um array vazio. @EdgarSandi
  • 50.
    Manipulação de tiposno PHP ◦ O PHP não requer (ou suporta) a definição de tipo explícita na declaração de variáveis: o tipo de uma variável é determinado pelo contexto em que a variável é utilizada. Ex.:Ex.: $a = 2; // $a é inteiro $a = "PHP"; // $a é string $a = true; // $a é booleano $a = 2 + "1PHP"; // $a é inteiro @EdgarSandi
  • 51.
    Conversão de tiposno PHP (Type casting) ◦ A conversão de tipos no PHP funciona como no C: o nome de um tipo desejado é escrito entre parênteses antes da variável em que se deseja a moldagem. ◦ Ex.: $a = 5; // $a é inteiro $a = (boolean) $a; // $a é booleano$a = (boolean) $a; // $a é booleano Principais conversões permitidas: ◦ (int), (integer) – converte para inteiro ◦ (bool), (boolean) - converte para booleano ◦ (float), (double), (real) – converte para número de ponto flutuante ◦ (string) - converte para string @EdgarSandi
  • 52.
    Conversão de tiposno PHP ◦ Nota: Ao invés de adicionar um cast de inteiro para string, você pode apenas envolver a variável com aspas duplas "" ◦ Ex.: $a = 5; // $a é inteiro $a = "$a"; // $a é string @EdgarSandi
  • 53.
    Escopo de variáveisno PHPEscopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHP ◦ Escopo local $a = 1; include 'b.inc'; ◦ Escopo local da função◦ Escopo local da função $a = 1; /* escopo global */ function teste() { echo $a; /* referencia uma variável do escopo local (não definida) */ } teste(); Saída: VAZIO @EdgarSandi
  • 54.
    Escopo de variáveisno PHPEscopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHP ◦ A palavra chave global $a = 1; $b = 2; function soma() {function soma() { global $a, $b; $b = $a + $b; } soma(); echo $b; Saída: 3 @EdgarSandi
  • 55.
    Escopo de variáveisno PHPEscopo de variáveis no PHPEscopo de variáveis no PHPEscopo de variáveis no PHP ◦ Usando $GLOBALS no lugar de global $a = 1; $b = 2; function soma () { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } soma(); echo $b; Saída: 3 @EdgarSandi
  • 56.
    Utilizando variáveis estáticas functionteste (){ $a = 0; echo $a; $a++;$a++; } teste(); teste(); Saídas: 0 0 @EdgarSandi
  • 57.
    Utilizando variáveis estáticas functionteste (){ static $a = 0; echo $a; $a++;$a++; } teste(); teste(); ... Saídas: 0 1 ... @EdgarSandi
  • 58.
    Declarando variáveis static functionfoo(){ static $int = 0; // correto static $int = 1 + 2; // errado (é uma expressão) static $int = sqrt(121); // errado (é umastatic $int = sqrt(121); // errado (é uma expressão) $int++; echo $int; } foo(); Saída: 1 @EdgarSandi
  • 59.
    Constantes no PHP //Nomes de constantes válidos define("FOO", "alguma coisa"); define("FOO2", "alguma outra coisa"); define("FOO_BAR", "alguma coisa mais");define("FOO_BAR", "alguma coisa mais"); // Nomes de constantes inválidas define("2FOO", "alguma coisa"); @EdgarSandi
  • 60.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHPExemplos de código em PHPExemplos de código em PHPExemplos de código em PHP O PDO @EdgarSandi
  • 61.
    A programação estruturada <?php $a= 2; // inteiro $b = 5; // inteiro echo $a + $b; // inteiro ?> Saída: 7 @EdgarSandi
  • 62.
    As várias formasde exibir o valor de uma variável: <?php $var = 'Mundo PHP'; // maneira menos eficiente echo "Olá $var!";echo "Olá $var!"; // maneira mais eficiente echo 'Olá ' . $var . '!'; // maneira muito eficiente echo 'Olá ', $var, '!'; ?> Saída: Olá Mundo PHP @EdgarSandi
  • 63.
    A tipagem dinâmica <?php $a= 2; // inteiro $b = "10abc"; // string echo $a + $b; // inteiro ?> Saída: 12 @EdgarSandi
  • 64.
    Outro exemplo detipagem dinâmica no PHP <?php if (('1 galinha' + '2 pardais') == '3 aves') { echo 'São iguais!!!'; } else {} else { echo 'Isso é loucura!'; } ?> Saída: ???? @EdgarSandi
  • 65.
    Breve história doPHP Características do PHP Vantagens do PHP Novidades da versão 5.3 Funcionalidades do PHP Mitos sobre o PHP Grandes sites que utilizam o PHP Empresas que apóiam o PHPEmpresas que apóiam o PHP Frameworks PHP O Zend Framework Sintaxe do PHP Exemplos de código em PHP O PDOO PDOO PDOO PDO @EdgarSandi
  • 66.
    PDO é umaextensão do PHP utilizada para a abstração do acesso ao SGBD. @EdgarSandi
  • 67.
    Abstração do acessoa diversos bancos de dados Segurança Orientado a objetosOrientado a objetos Expansível @EdgarSandi
  • 68.
    PDO ◦ Representa aconexão PDOStatementPDOStatement ◦ Representa um comando preparado e um result set associado PDOException ◦ Lança uma exceção do banco de dados @EdgarSandi
  • 69.
    MySQL PostgreSQL Microsoft SQL Server/Sybase IBMDB2 OracleOracle Informix Firebird ODBC SQLite @EdgarSandi
  • 70.
    Resumo ◦ As consultassão compiladas uma vez no nível do servidor e em seguida os parâmetros são passados BenefíciosBenefícios ◦ Maior desempenho ◦ Maior segurança ◦ Mais portátil @EdgarSandi
  • 71.
    O PDO temsuporte a transações ◦ $conn->beginTransaction(); ◦ $conn->commit(); ◦ $conn->rollBack();◦ $conn->rollBack(); ◦ $conn = null; @EdgarSandi
  • 72.
    Uma forma rápidade se recuperar os dados de uma consulta: foreach($conn->query("SELECT * FROM users") as $row){ // código }} @EdgarSandi
  • 73.
    Retornando uma listade usuários: try { $conn = new PDO("mysql:host=$host;dbname=$db", $user,$pass); $result = $conn->query('SELECT * FROM users');$result = $conn->query('SELECT * FROM users'); } catch (PDOException $e) { echo $e->getMessage(); return false; } return $result; @EdgarSandi
  • 74.
    Código poderoso. Classes “Model”e Classes “Controller”. Diminuir quantidade de código PHP “misturado” entre tags HTML. Implementação e uso de Design Patterns.Implementação e uso de Design Patterns. @EdgarSandi
  • 75.
    Esta apresentação serádisponibilizada por link através do perfil @EdgarSandi @EdgarSandi
  • 76.
    Obrigado! How to Follow:@GrupoSeason, @EdgarSandi, @Zend, @phpbrasil, @phpsp, @Globalcode Contato pessoal: ◦ edgar.cbbrasil@gmail.com ◦ @EdgarSandi @EdgarSandi