Your SlideShare is downloading. ×
0
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Curso PHP UNIFACS 2014.1 – 2ª aula

201

Published on

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
201
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
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. PHPBásico  II
  • 2. IF / ELSEIF / ELSE <?php! ! $a = 60;! $b = 60;! ! if ($a == $b) {! ! echo '$a e $b são iguais';! } elseif ($a > $b) {! ! echo '$a é maior que $b';! } else {! ! echo '$a é menor que $b';! }!
  • 3. While / Do-While <?php! ! /* While */! $i = 1;! while ($i <= 10) {! ! echo $i++;! }! ! /* Do-While */! $i = 1;! do {! ! echo $i++;! } while ($i <= 10);!
  • 4. For / Foreach <?php! ! for ($i = 0; $i <= 100; $i++) {! ! echo $i . PHP_EOL;! } ! ! foreach (range(0, 100) as $numero) {! ! echo $numero . PHP_EOL;! }!
  • 5. Foreach <?php! ! for ($i = 0; $i <= 100; $i++) {! ! echo $i . PHP_EOL;! } ! ! foreach (range(0, 100) as $numero) {! ! echo $numero . PHP_EOL;! }!
  • 6. Foreach <?php! ! $clientes[3] = ['nome' => 'John Doe'];! $clientes[2] = ['nome' => 'Steve Jobs'];! $clientes[1] = ['nome' => 'Bill Gates'];! ! foreach ($clientes as $chave => $cliente)! ! echo "Cliente #{$chave}: {$cliente['nome']}" . PHP_EOL;! ! /* Output:! Cliente #3: John Doe! Cliente #2: Steve Jobs! Cliente #1: Bill Gates! *****/!
  • 7. Foreach <?php! ! $lista = array(50, 60, 70, 80);! ! foreach ($lista as $chave => $valor)! ! echo "$chave: $valor" . PHP_EOL;! ! /* Output:! 0: 50! 1: 60! 2: 70! 3: 80! *****/!
  • 8. Switch <?php! ! $i = 1;! ! switch ($i) {! ! case 0: ! ! ! echo 'primeira opção';! ! ! break;! ! case 1: ! ! ! echo 'segunda opção';! ! ! break;! ! case 2:! ! ! echo 'terceira opção';! ! ! break;! }!
  • 9. Include / Require arquivo01.php! <?php! ! $texto = 'Trabalhando com o Include no PHP';! ! function dobrar($numero) {! ! return $numero * 2;! }! ! ! arquivo02.php! <?php! ! include 'arquivo01.php';! ! echo dobrar(4); // Output: 8! echo $texto; // Output: Trabalhando com o Include no PHP!
  • 10. Include Exibe  um  “Warning”  e  não  interrompe  a  execução Warning:  include(arquivo1.php):  failed  to  open  stream:  No  such  file   or  directory  in  /Users/jweber/dev/projects/php/arquivo1.php  on   line  3   ! Warning:  include():  Failed  opening  'arquivo1.php'  for  inclusion   (include_path='.:')  in  /Users/jweber/dev/projects/php/ arquivo1.php  on  line  3   ! Fatal  error:  Call  to  undefined  function  dobrar()  in  /Users/jweber/ dev/projects/php/arquivo2.php  on  line  5
  • 11. Require Exibe  um  “Fatal  Error”  e  interrompe  a  execução Warning:  require(arquivo1.php):  failed  to  open  stream:  No   such  file  or  directory  in  /Users/jweber/dev/projects/php/ arquivo1.php  on  line  3   ! Fatal  error:  require():  Failed  opening  required   'arquivo1.php'  (include_path='.:')  in  /Users/jweber/dev/ projects/php/arquivo1.php  on  line  3
  • 12. • Pode ser atribuída à uma variável ou invocadas dinamicamente; • Passadas como argumentos à outras funções; • Pode retornar outras funções (called higher-order functions); • Presente na linguagem desde o PHP 5.3 (2009) como Closures; • Diversas melhorias no PHP 5.4 (2012); Funções Anônimas no PHP
  • 13. 13 <?php! ! $input = array(1, 2, 3, 4, 5, 6);! ! // Criar função anônima! $filtroNumeroPar = function($item) {! return ($item % 2) == 0;! };! ! // Função do PHP array_filter! $output = array_filter($input, $filtroNumeroPar);! ! // Você pode passar a função direto! $output = array_filter($input, function($item) {! return ($item % 2) == 0;! });! ! print_r($output);! Exemplo 01 Lambda
  • 14. 14 Exemplo 02 Closure <?php! /**! * Creates an anonymous filter function accepting items > $min! *! * Returns a single filter out of a family of "greater than n" filters! */! function criteria_greater_than($min)! {! return function($item) use ($min) {! return $item > $min;! };! }! ! $input = array(1, 2, 3, 4, 5, 6);! ! // Use array_filter on a input with a selected filter function! $output = array_filter($input, criteria_greater_than(3));! ! print_r($output); // items > 3!
  • 15. 15 http://www.php.net/manual/pt_BR/function.array-filter.php
  • 16. 16 http://php.net/manual/en/function.call-user-func-array.php
  • 17. 17 https://wiki.php.net/rfc/closures Funções Anônimas no PHP
  • 18. Onde Estudar? www.phptherightway.com
  • 19. Onde Estudar? www.php.net/docs.php
  • 20. Onde Estudar? www.php.net/docs.php
  • 21. Onde Estudar? http://www.codecademy.com/tracks/php
  • 22. Onde Estudar? http://www.w3schools.com/html/html_intro.asp
  • 23. Onde Estudar? http://www.codecademy.com/tracks/web
  • 24. Onde Estudar? http://www.w3c.br/Cursos/CursoHTML5
  • 25. 25 PHP! Orientado a Objetos
  • 26. • PHP é flexível; • Linguagem dinâmica; • Suporta uma variedade de técnicas de programação; • Sólido modelo OO no PHP 5.0 (2004); • Traits na 5.4 (2012); Language Highlights
  • 27. Classe <?php! ! class MinhaClasse! {! ! ! public ! $atributoPublico ! = 'Público';! ! protected $atributoProtegido = 'Protegido';! ! private ! $atributoPrivado ! = 'Privado';! ! ! public function metodoQualquer()! ! {! ! ! echo $this->atributoPublico;! ! ! echo $this->atributoProtegido;! ! ! echo $this->atributoPrivado;! ! }! ! }! ! $objeto = new MinhaClasse();! echo $objeto->atributoPublico; // OK! echo $objeto->atributoProtegido; // Fatal Error! echo $objeto->atributoPrivado; // Fatal Error! $objeto->metodoQualquer(); // PúblicoProtegidoPrivado!
  • 28. Construtor <?php! ! class Pessoa ! {! ! ! private $nome;! ! private $sobrenome;! ! ! public function __construct($nome, $sobrenome)! ! {! ! ! $this->nome = $nome;! ! ! $this->sobrenome = $sobrenome;! ! }! ! ! public function getNomeCompleto() ! ! {! return $this->nome . ' ' . $this->sobrenome;! ! }! ! }! ! $joao = new Pessoa('João', 'da Silva');! echo $joao->getNomeCompleto(); // João da Silva!
  • 29. Destrutor <?php! ! class Pessoa! {! ! ! private $nome, $sobrenome;! ! ! public function __construct($nome, $sobrenome)! ! {! ! ! $this->nome = $nome;! ! ! $this->sobrenome = $sobrenome;! ! }! ! ! public function __destruct()! ! {! echo 'Destruindo...';! ! }! ! ! }! ! $joao = new Pessoa('João', 'da Silva');! unset($joao); //Destruindo...! //$joao = null; //Destruindo...!
  • 30. Método Estático <?php! ! class MinhaClasse! {! ! ! function metodoNormal()! ! {! echo 'Método Normal';! ! }! ! ! static function metodoEstatico()! ! {! echo 'Método Estático';! ! }! ! }! ! MinhaClasse::metodoNormal(); // Error! MinhaClasse::metodoEstatico(); // OK! ! $objeto = new MinhaClasse();! $objeto->metodoNormal();! $objeto->metodoEstatico();!
  • 31. Herança<?php! ! class OutraClasse! {! ! ! public $atributo = 'Atributo Qualquer';! ! ! public function hello()! ! {! echo 'Hello World';! ! }! ! }! ! class MinhaClasse extends OutraClasse! {! ! ! public function getAtributo()! ! {! return $this->atributo;! ! }! ! }! ! $objeto = new MinhaClasse();! $objeto->hello();! echo $objeto->getAtributo();!
  • 32. Classe Abstrata <?php! ! abstract class OutraClasse! {! ! ! public $atributo = 'Atributo Qualquer';! ! ! public function hello()! ! {! echo 'Hello World';! ! }! ! }! ! class MinhaClasse extends OutraClasse! {! ! ! public function getAtributo()! ! {! return $this->atributo;! ! }! ! }! ! $objeto2 = new OutraClasse(); // Fatal Error!
  • 33. Método Abstrato <?php! ! abstract class MinhaClasse! {! ! abstract function metodoAbstrato();! ! ! public function getAtributo()! ! {! return $this->atributo;! ! }! ! }! ! $objeto = new MinhaClasse(); // Fatal Error!
  • 34. Como utilizar o mesmo nome de classe em uma outra biblioteca? Namespaces
  • 35. O que é Namespace? c:arquivospasta01foo.txt c:arquivospasta02foo.txt Assim, consigo ter arquivos com os mesmos nomes, porém, em caminhos diferentes.
  • 36. 36 Namespaces <?php! ! namespace EscolaPublica;! ! class Estudante! {! ! ! public $matricula, $nome, $serie;! ! ! function __construct($matricula, $nome, $serie)! ! {! ! ! $this->matricula = $matricula;! ! ! $this->nome = $nome;! ! ! $this->serie = $serie;! ! }! ! }!
  • 37. 37 Namespaces <?php! ! namespace EscolaPrivada;! ! class Estudante! {! ! ! public $matricula, $nome, $serie;! ! ! function __construct($matricula, $nome, $serie)! ! {! ! ! $this->matricula = $matricula;! ! ! $this->nome = $nome;! ! ! $this->serie = $serie;! ! }! ! }!
  • 38. 38 Namespaces <?php! ! require 'projeto/src/publica/Estudante.php';! $joao = new EscolaPublicaEstudante();! ! require 'projeto/src/privada/Estudante.php';! $pedro = new EscolaPrivadaEstudante();!
  • 39. Namespaces <?php! // PHP 5.3 and later:! namespace VendorModel;! ! class Foo! {! }! ! <?php! // PHP 5.2.x and earlier:! class Vendor_Model_Foo! {! }!
  • 40. Namespaces <?php! ! require 'projeto/src/publica/Estudante.php';! require 'projeto/src/privada/Estudante.php';! ! use EscolaPublicaEstudante as EstudantePublica();! use EscolaPrivadaEstudante as EstudantePrivada();! ! $joao = new EstudantePublica();! $pedro = new EstudantePrivada();!
  • 41. Interfaces <?php! ! interface NomeDaInterface ! {! public function metodo($parametro);! }! ! interface NomeDeOutraInterface! {! public function outroMetodo($param1, $param2);! }! ! class Qualquer implements NomeDaInterface, NomeDeOutraInterface! {! ! ! ! public function metodo($parametro)! ! {! print('Implementação...' . $parametro);! ! }! ! ! public function outroMetodo($param1, $param2) ! ! {! print('Implementação 2...' . $param1 . $param2);! ! }! ! }! ! $objeto = new Qualquer();! $objeto->metodo('Teste');!
  • 42. Constantes <?php! namespace VendorModel;! ! class Foo! {! const VERSION = '1.0';! const DATE_APPROVED = '2012-06-01';! ! public function getVersion()! {! return self::VERSION;! }! }! ! echo Foo::VERSION;!
  • 43. Traits <?php! ! trait Hello! {! ! function ola($nome)! ! {! echo "Olá, {$nome}!";! ! }! }! ! class Pessoa! {! ! use Hello;! }! ! $joao = new Pessoa();! $joao->ola('Maria'); //Olá, Maria!!
  • 44. DateTime <?php! ! $input = '12. 30. 2014';! $data = DateTime::createFromFormat('m. d. Y', $input);! ! echo 'Data no Padrão BR: ' . $data->format('d/m/Y');!
  • 45. DateTime <?php! ! $input = '12. 30. 2014';! $dataInicial = DateTime::createFromFormat('m. d. Y', $input);! $dataFinal = clone $dataInicial;! ! $dataFinal->add(new DateInterval('P4M23D')); // Adiciona 1 mês e 6 dias! ! $diff = $dataFinal->diff($dataInicial);! ! print('Diff: ' . $diff->format('%m meses, %d dias (total: %a dias)') . PHP_EOL);! ! /* Output:! Diff: 4 meses, 24 dias (total: 144 dias)! **/!
  • 46. Autoload Simples <?php! ! function __autoload($classe)! {! ! require $classe . '.php'; // require 'Pessoa.php';! }! ! $pessoa = new Pessoa();!
  • 47. Try / Catch <?php! ! function divisao($dividendo, $divisor)! {! ! if (0 === $divisor)! ! ! throw new Exception('Divisão por zero!');! ! ! return $dividendo / $divisor;! }! ! try ! {! ! $quociente = divisao(6, 0); // Fatal Error! } ! catch (Exception $ex) ! {! ! printf("Error: %s", $ex->getMessage());! }! finally ! {! ! print('Finally sempre será executado...');! }!
  • 48. SPL Exceptions http://php.net/manual/en/spl.exceptions.php
  • 49. SPL Exceptions <?php! ! class ValidationFailedException extends Exception {}!
  • 50. Try / Catch <?php! $email = new FuelEmail;! $email->subject('My Subject');! $email->body('How the heck are you?');! $email->to('guy@example.com', 'Some Guy');! ! try! {! $email->send();! }! catch(FuelEmailValidationFailedException $e)! {! // The validation failed! }! catch(FuelEmailSendingFailedException $e)! {! // The driver could not send the email! }! finally! {! /* Executed regardless of whether an exception has been ! ! thrown, and before normal execution resumes */! }!
  • 51. JSON JSON (JavaScript Object Notation - Notação de Objetos JavaScript) é uma formatação leve de troca de dados. Para seres humanos, é fácil de ler e escrever. Para máquinas, é fácil de interpretar e gerar. JSON está constituído em duas estruturas: • Uma coleção de pares nome/valor. Em várias linguagens, isto é caracterizado como um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas. • Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.
  • 52. JSON {! ! "clientes": [! ! ! {"nome":"John" , "sobrenome":"Doe"}, ! ! ! {"nome":"Anna" , "sobrenome":"Smith"}, ! ! ! {"nome":"Peter" , "sobrenome":"Jones"}! ! ]! }! www.json.org
  • 53. API da Matriz de distâncias do Google https://developers.google.com/maps/documentation/distancematrix/?hl=pt-br É um serviço que fornece distância e tempo de deslocamento para uma matriz de origens e destinos. As informações retornadas são baseadas no trajeto recomendado entre pontos de partida e de chegada, conforme calculado pela API do Google Maps, e consistem em linhas que contêm valores duration e distance para cada par.

×