PHP

o que foi?

o que não é?

o que é?

o que vai ser?

Alessandro Feitoza

  • FullStack Developer at ELSE (França)

  • PHP com Rapadura Founder

  • Professor de desenvolvimento web e outras computarias.

o
que
foi?

Rasmus

Lerdorf

  • Dinamarquês

PHPT

Personal Home Page Tools

1993

use CGI qw(:standard);
print header;
print start_html('Form Exemplo'),
    h1('Formulário comum'),
    start_form,
    "Nome: ", textfield('nome'),
    p,
    "Idade: ", textfield('idade'),
    p,
    submit,
    end_form;
if(param()) {
    print "Oi ",em(param('nome')),
        "Você tem ",em(param('idade')),
        " anos";
}
print end_html;

PHPt

<html>
    <head><title>Form Exemplo</title></head>
    <body>
        <h1>Formulário Comum</h1>
        <form action="form.phtml" method="POST">
            Nome: <input type="text" name="nome">
            Idade: <input type="text" name="idade">
            <br><input type="submit">
        </form>
        <?php 
        if($name){
            echo "Oi {$nome}, você tem {$idade} anos";
        }
        ?>
    </body>
</html>

HTML deve ser HTML

php 2

lançada oficialmente em 1997

ninguém muda o mundo sozinho.

1998 (php 3)

Zeev Zuraski

+

Andi Gutmans

php 4

lançada em 2000

Introdução a Orientação a Objetos

php 5

lançada em 2004

a linguagem já está bem mais Orientada a Objetos.

php 5.3

lançada em 2009

php 5.4

lançada em 2012

php 6

 

php7

lançada em 2015

php7.1

lançada em 2016

php7.2

lançada em 2017

php7.3

lançada em 2018

php7.4

lançada em 2019

php8.3

lançada em 2023

rápida

Até 9x mais rápida que a versão anterior.

totalmente nova

Toda a linguagem foi reescrita do zero

tipada

Podemos trabalhar mais fortemente com tipos.

Title Text

<?php

declare(strict_types=1);

function nomeDaFuncao(string $nome, int $idade): void
{
    echo "Oi {$nome}, você tem {$idade} anos.";
}

function testaSeAlunoTemMaioridade(Aluno $aluno): bool
{
    if ($aluno->getIdade() >= 18) {
        return true;
    }

    return false;
}

function soma(float $n1, float $n2): float
{
    return $n1 + $n2;
}

PHP se tornou a linguagem mais usada pra web*

na web nenhuma linguagem trabalha sozinha

79% da Web

novos recursos

novo ternário

<?php

if (isset($nome)) {
    echo $nome; 
} else {
    echo 'nome não informado';
}

echo (isset($nome))?$nome:'nome não informado';

echo $nome ?? 'nome não informado';

typed properties

<?php

class Aluno
{
    private string $nome;
    private int $idade;
    private float $saldo;
    private bool status;
    private array $notas = []; 
    private Curso $curso;
}

ARROW FUNCTIONS

<?php

function welcome (string $username): string 
{
    return "Bem vindo {$username}";
}

const welcome =  fn(string $username) => "Bem vindo {$username}";

Criptografia

Quem sabe faz ao vivo!

php7 redefiniu o mercado pra php

o
que
é?

PHP 8.0 (2020)

PHP 8.1 (2021)

PHP 8.2 (2022)

mais bonito

annotations

<?php

use MVC\Route;
 
[#Entity] 
class UserController {
    [#Id #AutoIncrement #Column(type="int")]
    private int $id;

    [#Route("/usuarios", methods=["GET"], name="usuarios")]
    public function list(): Response
    {
        // specific implementation
    }
}

mais rápido

JIT (Just in Time)

MAIS PRÁTICO

<?php

$month = 4;

echo match ($month) {
  1 => "Janeiro",
  2 => "Fevereiro",
  3 => "Março",
  4 => "Abril",
  default => "Mês inválido",
};

MATCH Expression

<?php

$country = $session?->user?->getAddress()?->country;

null safe operator

<?php

enum Status
{
    case Draft;
    case Published;
    case Archived;
}

enums

<?php

class BlogData
{
    public readonly Status $status;
  
    public function __construct(Status $status)
    {
        $this->status = $status;
    }
}

READONLY

O
que
não é?

Gambiarrento

inseguro

bala de prata

não Tá amarrado a um determinado banco de dados

não é invencivel

não é lento

não é feito pra desktop

não é programador honesto e pobre

php é o que há!

e
O que
vai seR?

php, assim como várias outras linguagens, continuarão existindo.

php é uma linguagem como qualquer outra. tem seus prós e seus contras.

é sua vez de aprender PHp

dúvidas

sugestão de leitura

http://br.phptherightway.com/

http://php.net

referências

  • https://www.php.net/manual/pt_BR/intro-whatis.php
  • https://wiki.php.net/rfc/annotations_v2

  • https://wiki.php.net/rfc/typed_properties_v2

  • https://phpcomrapadura.org/php-8-0-data-de-release-e-status-do-jit-no-php/

  • https://www.php.net/releases/8.0/en.php

  • https://www.php.net/releases/8.1/en.php

valeura!

www.alessandrofeitoza.eu

slides.com/alessandrofeitoza

phpcomrapadura.org

Made with Slides.com