73
PHP Por Jonata Weber [email protected]

SIMCIT 2013 - Mini-curso PHP

Embed Size (px)

DESCRIPTION

SIMCIT 2013 - UNIFACS Campus Feira

Citation preview

Page 1: SIMCIT 2013 - Mini-curso PHP

PHP

Por Jonata [email protected]

Page 2: SIMCIT 2013 - Mini-curso PHP

Quem são vocês?

Page 3: SIMCIT 2013 - Mini-curso PHP

Sobre mim...

Page 4: SIMCIT 2013 - Mini-curso PHP

falconreviews.com

Page 5: SIMCIT 2013 - Mini-curso PHP

becker.com

Page 6: SIMCIT 2013 - Mini-curso PHP

PHPHypertext Preprocessor

Page 7: SIMCIT 2013 - Mini-curso PHP

Um pouco de história...

Page 8: SIMCIT 2013 - Mini-curso PHP

Antes, tudo era estático!

Page 9: SIMCIT 2013 - Mini-curso PHP

Criado em 1994Por Ramus Lerdorf

Common Gateway Interface (CGI)Binário escrito em C

Rastreamento de visitasem seu currículo on-line

Page 10: SIMCIT 2013 - Mini-curso PHP

Rasmus LerdorfÉ um programador canadiano-dinamarquês e o autor da primeira

versão da linguagem de programação PHP. (Wikipédia)

Page 11: SIMCIT 2013 - Mini-curso PHP

• Personal Home Page Tools “PHP Tools”

1994

• Tornou-se público• Forms Interpreter - “FI”• PHP Construction Kit

1995

• PHP 2.0 – PHP/FI

1996

Page 12: SIMCIT 2013 - Mini-curso PHP

• Deixou de ser BETA

1997

• 60.000 domínios com PHP – 1% da Internet

• PHP 3 – 70.000 domínios

1998

• PHP 4 – Zend Engine

2000

Page 13: SIMCIT 2013 - Mini-curso PHP

• PHP 5 – Zend Engine 2.0 e• Sólido modelo de OO

2004

• PHP 5.3 – Funções Anônimas e• Namespaces

2009

• PHP 5.4 – Traits

2012

Page 14: SIMCIT 2013 - Mini-curso PHP

Ok, chega de história... Vamos falar do HOJE!

Page 15: SIMCIT 2013 - Mini-curso PHP

2013

Page 16: SIMCIT 2013 - Mini-curso PHP

“I love Google’s stat, that 75 percent of the web runs PHP. No one knows the web better

than Google.”

http://venturebeat.com/2013/05/17/google-app-engine-finally-supports-php-the-language-that-runs-75-of-the-web/

Andi Gutmans - Zend

Page 17: SIMCIT 2013 - Mini-curso PHP

Google App Engine finally supports PHP

Page 18: SIMCIT 2013 - Mini-curso PHP

Porque PHP?

Page 19: SIMCIT 2013 - Mini-curso PHP

PHP é Open Source

Page 20: SIMCIT 2013 - Mini-curso PHP

Executado no Servidor

Page 21: SIMCIT 2013 - Mini-curso PHP

Programação Funcional

Page 22: SIMCIT 2013 - Mini-curso PHP

Suporte Completo a Programação OO

Page 23: SIMCIT 2013 - Mini-curso PHP

PHP usa uma mistura de interpretação e compilação

Page 24: SIMCIT 2013 - Mini-curso PHP

Fracamente TipadaAssim como Javascript, Ruby e Python

Page 25: SIMCIT 2013 - Mini-curso PHP

NamespacesPHP >= 5.3

Page 26: SIMCIT 2013 - Mini-curso PHP

TraitsPHP >= 5.4

Page 27: SIMCIT 2013 - Mini-curso PHP

ComposerGerenciador de Dependência para PHP

Page 28: SIMCIT 2013 - Mini-curso PHP

Servidor Web EmbutidoPHP >= 5.4

Page 29: SIMCIT 2013 - Mini-curso PHP

Ok, chega de teoria...

Vamos praticar!!

Page 30: SIMCIT 2013 - Mini-curso PHP

Preparar o Ambiente

1º Passo

Page 31: SIMCIT 2013 - Mini-curso PHP

Use a última versão estávelhttp://www.php.net/downloads.php

Page 32: SIMCIT 2013 - Mini-curso PHP

Performance entre versões

PHP 5.1.6 PHP 5.2.17 PHP 5.3.14 PHP 5.4.40

1

2

3

4

5

3.9732 4.1048

2.8

2.2511

Page 33: SIMCIT 2013 - Mini-curso PHP

No WindowsBaixar arquivo ZIP

Descompactar no c:\phpAbrir “Bloco de Notas” e digitar:

C:\php\php –S localhost:8000 –t c:\wwwSalvar arquivo na “Área de Trabalho” com o nome “servidor.bat”

(Não esquecer de alterar para todos os arquivos ao salvar no bloco de notas)

No LinuxNo console:

$ apt-get update$ apt-get install php55

Page 34: SIMCIT 2013 - Mini-curso PHP

Inicializar o Servidor WebNo console, acesse a pasta dos scripts php, depois digite:

> php -S localhost:8080

Page 35: SIMCIT 2013 - Mini-curso PHP

Criar o Script PHP

2º Passo

Page 36: SIMCIT 2013 - Mini-curso PHP

Bloco de Notas<?php echo ‘Hello World’; ?>

Salvar na pasta “www” como “index.php”

Page 37: SIMCIT 2013 - Mini-curso PHP

Executar o Script PHP

3º Passo

Page 38: SIMCIT 2013 - Mini-curso PHP

Navegador WebAcessar:

http://localhost:8000/index.php

Page 39: SIMCIT 2013 - Mini-curso PHP

PHP Básico

Page 40: SIMCIT 2013 - Mini-curso PHP

Tipos Primitivos

• Boolean• Integer• Float• String• Array• NULL• Object

Page 41: SIMCIT 2013 - Mini-curso PHP

Boolean

<?php

$variavel = true;$variavel = false;

$variavel = (50 == '50'); // true $variavel = (50 != '50'); // false

$variavel = (50 === '50'); // false$variavel = (50 !== '50'); // true

Page 42: SIMCIT 2013 - Mini-curso PHP

Integer e Float<?php

$variavel = 50; // decimal $variavel = -123; // número negativo $variavel = 0123; // octal $variavel = 0x1A; // número hexadecimal (26 decimal)

$variavel = 1.234; // ponto flutuante$variavel = 1.2e3; // 1,2³

Page 43: SIMCIT 2013 - Mini-curso PHP

StringAspas Simples

<?php

echo ‘essa é uma simples string';

echo ‘Além disso, você pode embarcar novas linhas nas strings, esse é um caminho legal de fazer';

// Outputs: Arnold once said: "I'll be back" echo 'Arnold once said: "I\'ll be back"';

Page 44: SIMCIT 2013 - Mini-curso PHP

<?php

// Outputs: Você deletou C:\*.*? echo ‘Você deletou C:\\*.*?';

// Outputs: Você deletou C:\*.*? echo ‘Você deletou C:\*.*?';

// Outputs: Isso não vai criar: \n uma nova linha echo ‘Isso não vai criar: \n uma nova linha';

// Outputs: Variáveis não funcionam $expand $either assim echo ‘Variáveis não funcionam $expand $either assim';

StringAspas Simples

Page 45: SIMCIT 2013 - Mini-curso PHP

<?php

$variavel = 'Legal';

// Outputs: Variáveis funcionam assim: Legal echo “Variaveis funcionam assim: $variavel”;

StringAspas Duplas

Page 46: SIMCIT 2013 - Mini-curso PHP

Array

<?php

$array = array("foo", "bar", "hello", "world");$array = ["foo", "bar", "hello", "world"]; // PHP >= 5.4

Page 47: SIMCIT 2013 - Mini-curso PHP

ArraySintaxe:

array( key => value, key2 => value2, key3 => value3, ...)

<?php

$variavel = array(      "chave1" => "valor1",      "chave2" => "valor2", );

// as of PHP 5.4 $variavel = [      "chave1" => "valor1",      "chave2" => "valor2", ];

Page 48: SIMCIT 2013 - Mini-curso PHP

Array

<?php

$array = array(      "foo" => "bar",      "bar" => "foo",      100 => -100,      -100 => 100, ); var_dump($array);

Saída:

array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100)

}

Page 49: SIMCIT 2013 - Mini-curso PHP

Array<?php

$variavel = array(5 => 1, 12 => 2); $variavel[] = 56 // Isso é o mesmo que $variavel[13] = 56; $variavel["x"] = 42; // Isso adiciona um novo elemento // com a chave "x"

unset($variavel[5]); // Isso remove o elemento do array unset($variavel); // Isso delete o array

Page 50: SIMCIT 2013 - Mini-curso PHP

NULL

<?php

$variavel = NULL;$variavel = Null;$variavel = null;

Page 51: SIMCIT 2013 - Mini-curso PHP

Constantes

Page 52: SIMCIT 2013 - Mini-curso PHP

Funções<?php

function helloWorld() { echo 'Hello World'; } helloWorld(); // Hello World

function maiusculo($texto) { return strtoupper($texto); } echo maiusculo('jonata weber'); // JONATA WEBER

Page 53: SIMCIT 2013 - Mini-curso PHP

Funções AnônimasLambda e Closure

Page 54: SIMCIT 2013 - Mini-curso PHP

Operadores Aritméticos

Page 55: SIMCIT 2013 - Mini-curso PHP

Operadores Lógicos

Page 56: SIMCIT 2013 - Mini-curso PHP

Operadores de String

Page 57: SIMCIT 2013 - Mini-curso PHP

Operadores de Atribuição

Page 58: SIMCIT 2013 - Mini-curso PHP

Incremento / Decremento

Page 59: SIMCIT 2013 - Mini-curso PHP

Exercício 1

Faça um script em PHP que leia três notas de um aluno e calcule a média aritmética deste aluno.

• Deverá ser uma função que receba três parâmetros float (ou um array)

• A função deverá retornar a média aritmética do aluno em float

Page 60: SIMCIT 2013 - Mini-curso PHP

Exercício 2

Faça um script em PHP que converta HORAS em SEGUNDOS.

• Deverá ser uma função que recebe um número inteiro em horas, ex: 20

• A função deverá retornar um inteiro em segundos, ex: 72000.• O script deverá imprimir o resultado no seguinte formato:

• 20 horas têm 72000 segundos

Page 61: SIMCIT 2013 - Mini-curso PHP

IF / ELSEIF / ELSE

Page 62: SIMCIT 2013 - Mini-curso PHP

Operador Ternário

Page 63: SIMCIT 2013 - Mini-curso PHP

WHILE / DO-WHILE

Page 64: SIMCIT 2013 - Mini-curso PHP

FOR / FOREACH

Page 65: SIMCIT 2013 - Mini-curso PHP

FOREACH

Page 66: SIMCIT 2013 - Mini-curso PHP

SWITCH

Page 67: SIMCIT 2013 - Mini-curso PHP

Include / Requirearquivo1.php

arquivo2.php

Page 68: SIMCIT 2013 - Mini-curso PHP

IncludeExibe um “Warning” e não interrompe a execução

Warning: include(arquivo3.php): failed to open stream: No such file or directory in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Warning: include(): Failed opening 'arquivo3.php' for inclusion (include_path='.:') in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Fatal error: Call to undefined function dobrar() in /Users/jweber/dev/projects/php/arquivo2.php on line 5

Page 69: SIMCIT 2013 - Mini-curso PHP

RequireExibe um “Fatal Error” e interrompe a execução

Warning: require(arquivo3.php): failed to open stream: No such file or directory in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Fatal error: require(): Failed opening required 'arquivo3.php' (include_path='.:') in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Page 70: SIMCIT 2013 - Mini-curso PHP

Prática!

Page 71: SIMCIT 2013 - Mini-curso PHP

FizzBuzz

Neste problema, você deverá exibir uma lista de 1 a 100, um em cada linha, com as seguintes exceções:

• Números divisíveis por 3 deve aparecer como 'Fizz' ao invés do número;

• Números divisíveis por 5 devem aparecer como 'Buzz' ao invés do número;

• Números divisíveis por 3 e 5 devem aparecer como 'FizzBuzz' ao invés do número’.

Page 72: SIMCIT 2013 - Mini-curso PHP

Prática!

Page 73: SIMCIT 2013 - Mini-curso PHP

• Site oficial do PHP – http://php.net• PHP The Right Way - http://www.phptherightway.com/• Wikipédia - http://pt.wikipedia.org• TuxRadar - http://www.tuxradar.com/practicalphp• Servidores da Web - http://informatica.hsw.uol.com.br/servidores-da-web.htm• http://www.lornajane.net/posts/2012/php-5-4-benchmarks

Referências