Curso PHP UNIFACS 2014.1 – 1a Aula

64
Curso PHP Baby Steps @JonataWeber 2014

description

Slides da primeira aula do curso PHP 2014.1.

Transcript of Curso PHP UNIFACS 2014.1 – 1a Aula

Page 1: Curso PHP UNIFACS 2014.1 – 1a Aula

Curso PHPBaby Steps

@JonataWeber2014

Page 2: Curso PHP UNIFACS 2014.1 – 1a Aula

2

Quem sou eu?

Page 3: Curso PHP UNIFACS 2014.1 – 1a Aula

3

Quem são vocês?

Page 4: Curso PHP UNIFACS 2014.1 – 1a Aula

4

Conteúdo Programático• Preparando o Ambiente

• PHP Básico

• PHP Orientado a Objetos

• PSR's

• Gerenciamento de

Dependência

• PHP em Linha de Comando

• Classes SPL

• Banco de Dados

• Caching

• Segurança

• Testes Automatizados

Page 5: Curso PHP UNIFACS 2014.1 – 1a Aula

Sobre o Curso

Carga Horária: 32 horas

Custo: 2 kg por aula

10:30h às 17:30h (1 hora de almoço)

Page 6: Curso PHP UNIFACS 2014.1 – 1a Aula

6

10/05/2014!

17/05/2014

24/05/2014

31/05/2014

07/06/2014

14/06/2014

Nossas Aulas

Page 7: Curso PHP UNIFACS 2014.1 – 1a Aula

PHPHypertext Preprocessor

Page 8: Curso PHP UNIFACS 2014.1 – 1a Aula

Um pouco de história...

Page 9: Curso PHP UNIFACS 2014.1 – 1a Aula

Antes, tudo era estático!

Page 10: Curso PHP UNIFACS 2014.1 – 1a Aula

Criado em 1994Por Ramus Lerdorf

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

Rastreamento de visitasem seu currículo on-line

Page 11: Curso PHP UNIFACS 2014.1 – 1a Aula

Rasmus LerdorfÉ um programador canadiano-dinamarquês e o autor da primeiraversão da linguagem de programação PHP. (Wikipédia)

Page 12: Curso PHP UNIFACS 2014.1 – 1a Aula

• Personal Home Page Tools! “PHP Tools”

1994

• Tornou-se público!

• Forms Interpreter - “FI”!• PHP Construction Kit

1995

• PHP 2.0 – PHP/FI1996

Page 13: Curso PHP UNIFACS 2014.1 – 1a Aula

• Deixou de ser BETA1997

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

• PHP 3 – 70.000 domínios

1998

• PHP 4 – Zend Engine2000

Page 14: Curso PHP UNIFACS 2014.1 – 1a Aula

• 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 – Traits2012

Page 15: Curso PHP UNIFACS 2014.1 – 1a Aula

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

Page 16: Curso PHP UNIFACS 2014.1 – 1a Aula

2013

Page 17: Curso PHP UNIFACS 2014.1 – 1a Aula

“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 18: Curso PHP UNIFACS 2014.1 – 1a Aula

Google App Engine finally supports PHP

Page 19: Curso PHP UNIFACS 2014.1 – 1a Aula

2014

Page 20: Curso PHP UNIFACS 2014.1 – 1a Aula

"HHVM is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM uses a just-in-

time (JIT) compilation approach to achieve superior performance while

maintaining the development flexibility that PHP provides."

hhvm.com

Page 21: Curso PHP UNIFACS 2014.1 – 1a Aula

21

!class MyClass {! public function alpha(): int {! return 1;! }!! public function beta(): string {! return 'hi test';! }!}!!function f(MyClass $my_inst): string {! // Fix me!! return $my_inst->alpha();!}

Hack Language

Page 22: Curso PHP UNIFACS 2014.1 – 1a Aula

Por que PHP?

Page 23: Curso PHP UNIFACS 2014.1 – 1a Aula

PHP é Open Source

Page 24: Curso PHP UNIFACS 2014.1 – 1a Aula

Executado no Servidor

Page 25: Curso PHP UNIFACS 2014.1 – 1a Aula

Programação Funcional

Page 26: Curso PHP UNIFACS 2014.1 – 1a Aula

Suporte Completo a Programação OO

Page 27: Curso PHP UNIFACS 2014.1 – 1a Aula

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

Page 28: Curso PHP UNIFACS 2014.1 – 1a Aula

Fracamente Tipada!Assim como Javascript, Ruby e Python

Page 29: Curso PHP UNIFACS 2014.1 – 1a Aula

Namespaces!PHP >= 5.3

Page 30: Curso PHP UNIFACS 2014.1 – 1a Aula

Traits!PHP >= 5.4

Page 31: Curso PHP UNIFACS 2014.1 – 1a Aula

Composer!Gerenciador de Dependência para PHP

Page 32: Curso PHP UNIFACS 2014.1 – 1a Aula

Servidor Web Embutido!

PHP >= 5.4

Page 33: Curso PHP UNIFACS 2014.1 – 1a Aula

Ok, chega de teoria...Vamos praticar!!

Page 34: Curso PHP UNIFACS 2014.1 – 1a Aula

Preparar o Ambiente

1º Passo

Page 35: Curso PHP UNIFACS 2014.1 – 1a Aula

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

http://windows.php.net/download.php!

Page 36: Curso PHP UNIFACS 2014.1 – 1a Aula

Performance Entre Versões!(menor é melhor)

Page 37: Curso PHP UNIFACS 2014.1 – 1a Aula

No WindowsBaixar arquivo ZIP!

Descompactar na pasta c:\php55!Adiciona-lo à variável de ambiente PATH

No LinuxNo console: !

$ apt-get update!$ apt-get install php55

Page 38: Curso PHP UNIFACS 2014.1 – 1a Aula

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

> php -S localhost:8000

Page 39: Curso PHP UNIFACS 2014.1 – 1a Aula

Criar o Script PHP

2º Passo

Page 40: Curso PHP UNIFACS 2014.1 – 1a Aula

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

Salvar na pasta “c:\php55\www” como “index.php”

Page 41: Curso PHP UNIFACS 2014.1 – 1a Aula

Executar o Script PHP

3º Passo

Page 42: Curso PHP UNIFACS 2014.1 – 1a Aula

Navegador WebAcessar: !

http://localhost:8000/index.php

Page 43: Curso PHP UNIFACS 2014.1 – 1a Aula

PHP Básico

Page 44: Curso PHP UNIFACS 2014.1 – 1a Aula

Tipos Primitivos• Boolean!• Integer!• Float!• String!• Array!• NULL!

• Object

Page 45: Curso PHP UNIFACS 2014.1 – 1a Aula

Boolean<?php !!$variavel = true;!$variavel = false;!!$variavel = (50 == '50'); // true $variavel = (50 != '50'); // false!!$variavel = (50 === '50'); // false!$variavel = (50 !== '50'); // true

Page 46: Curso PHP UNIFACS 2014.1 – 1a Aula

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 47: Curso PHP UNIFACS 2014.1 – 1a Aula

String!Aspas 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 48: Curso PHP UNIFACS 2014.1 – 1a Aula

<?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';

String!Aspas Simples

Page 49: Curso PHP UNIFACS 2014.1 – 1a Aula

<?php !!$variavel = 'Legal'; !// Outputs: Variáveis funcionam assim: Legal echo “Variaveis funcionam assim: $variavel”;

String!Aspas Duplas

Page 50: Curso PHP UNIFACS 2014.1 – 1a Aula

Array<?php !!$array = array("foo", "bar", "hello", "world");!$array = ["foo", "bar", "hello", "world"]; // PHP >= 5.4 !!

Page 51: Curso PHP UNIFACS 2014.1 – 1a Aula

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 52: Curso PHP UNIFACS 2014.1 – 1a Aula

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 53: Curso PHP UNIFACS 2014.1 – 1a Aula

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 54: Curso PHP UNIFACS 2014.1 – 1a Aula

NULL<?php !!$variavel = NULL;!$variavel = Null;!$variavel = null; ! !

Page 55: Curso PHP UNIFACS 2014.1 – 1a Aula

Constantes

Page 56: Curso PHP UNIFACS 2014.1 – 1a Aula

Funções<?php !!function helloWorld() { ! echo 'Hello World'; !} !helloWorld(); // Hello World !!function maiusculo($texto) { ! return strtoupper($texto); !} !echo maiusculo('jonata weber'); // JONATA WEBER

Page 57: Curso PHP UNIFACS 2014.1 – 1a Aula

Funções Anônimas!

Lambda e Closure

Page 58: Curso PHP UNIFACS 2014.1 – 1a Aula

Operadores Aritméticos

Page 59: Curso PHP UNIFACS 2014.1 – 1a Aula

Operadores Lógicos

Page 60: Curso PHP UNIFACS 2014.1 – 1a Aula

Prática!

Page 61: Curso PHP UNIFACS 2014.1 – 1a Aula

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 62: Curso PHP UNIFACS 2014.1 – 1a Aula

Loja de Tintas

Faça um programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 3 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00. Informe ao usuário a quantidade de latas de tinta a serem compradas e o preço total. !Obs.: Somente são vendidos um número inteiro de latas.

Page 63: Curso PHP UNIFACS 2014.1 – 1a Aula

Sequência de Fibonacci

A sequência de Fibonacci é a seguinte: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Sua regra de formatação é simples: os dois primeiros elementos são 1; a partir de então, cada elemento é a soma dos dois anteriores. Faça um algoritmo que leia um número inteiro calcule o seu número de Fibonacci. F(1) = 1, F(2) = 1, F(3) = 2, F(4) = 3, etc.

Page 64: Curso PHP UNIFACS 2014.1 – 1a Aula

• 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