Your SlideShare is downloading. ×

Introducao ao PHP @edgarsandi

179

Published on

Slides da palestra Introdução ao PHP

Slides da palestra Introdução ao PHP

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
179
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introdução ao PHPIntrodução ao PHPIntrodução ao PHPIntrodução ao PHP Edgar Rodrigues Sandi @EdgarSandi@EdgarSandi edgar@season.com.br @EdgarSandi
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Produtos oferecidos: ◦ Zend Server 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 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
  • 13. Projetos patrocinados ◦ Zend Engine,◦ 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. Alguns eventos patrocinados @EdgarSandi
  • 17. Introdução ao PHPIntrodução ao PHPIntrodução ao PHPIntrodução ao PHP @EdgarSandi
  • 18. 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
  • 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 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
  • 21. 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
  • 22. PHP pode ser usado de três formas: ◦ Server-side scripting ◦ Command-line scripting ◦ Client-side GUI applications @EdgarSandi
  • 23. 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
  • 24. 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
  • 25. Multi-plataforma Diversos servidores rodam o PHP Interage com uma grande quantidade de banco de dados Open-sourceOpen-source @EdgarSandi
  • 26. Liberdade de escolha Geração de imagens, gráficos e animações Flash criados dinamicamente, on-the-fly. @EdgarSandi
  • 27. 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
  • 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 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
  • 30. 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
  • 31. 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
  • 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 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
  • 34. @EdgarSandiFonte: Google
  • 35. @EdgarSandiFonte: Google
  • 36. 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
  • 37. @EdgarSandiFonte: Zend.com
  • 38. 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
  • 39. Yii Codeigniter Zend CakePHP SymphonySymphony PHPDevShell Prado Akelos Zoop QPHP @EdgarSandi
  • 40. 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
  • 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 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
  • 43. 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
  • 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 ◦ 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
  • 46. Olá mundo em PHP: <?php echo "Olá Mundo"; ?> @EdgarSandi
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. Utilizando variáveis estáticas function teste (){ $a = 0; echo $a; $a++;$a++; } teste(); teste(); Saídas: 0 0 @EdgarSandi
  • 57. Utilizando variáveis estáticas function teste (){ static $a = 0; echo $a; $a++;$a++; } teste(); teste(); ... Saídas: 0 1 ... @EdgarSandi
  • 58. 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
  • 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 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
  • 61. A programação estruturada <?php $a = 2; // inteiro $b = 5; // inteiro echo $a + $b; // inteiro ?> Saída: 7 @EdgarSandi
  • 62. 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
  • 63. A tipagem dinâmica <?php $a = 2; // inteiro $b = "10abc"; // string echo $a + $b; // inteiro ?> Saída: 12 @EdgarSandi
  • 64. 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
  • 65. 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
  • 66. PDO é uma extensão do PHP utilizada para a abstração do acesso ao SGBD. @EdgarSandi
  • 67. Abstração do acesso a diversos bancos de dados Segurança Orientado a objetosOrientado a objetos Expansível @EdgarSandi
  • 68. 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
  • 69. MySQL PostgreSQL Microsoft SQL Server/Sybase IBM DB2 OracleOracle Informix Firebird ODBC SQLite @EdgarSandi
  • 70. 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
  • 71. O PDO tem suporte a transações ◦ $conn->beginTransaction(); ◦ $conn->commit(); ◦ $conn->rollBack();◦ $conn->rollBack(); ◦ $conn = null; @EdgarSandi
  • 72. Uma forma rápida de se recuperar os dados de uma consulta: foreach($conn->query("SELECT * FROM users") as $row){ // código }} @EdgarSandi
  • 73. 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
  • 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

×