Alessandro Feitoza
Evangelist PHP | Community Manager/Founder PHP com Rapadura
FullStack Developer at ELSE (França)
PHP com Rapadura Founder
Professor de desenvolvimento web e outras computarias.
Personal Home Page Tools
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;
<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>
lançada oficialmente em 1997
Zeev Zuraski
+
Andi Gutmans
lançada em 2000
Introdução a Orientação a Objetos
lançada em 2004
a linguagem já está bem mais Orientada a Objetos.
lançada em 2009
lançada em 2012
lançada em 2015
lançada em 2016
lançada em 2017
lançada em 2018
lançada em 2019
lançada em 2023
Até 9x mais rápida que a versão anterior.
Toda a linguagem foi reescrita do zero
<?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;
}
79% da Web
<?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';
<?php
class Aluno
{
private string $nome;
private int $idade;
private float $saldo;
private bool status;
private array $notas = [];
private Curso $curso;
}
<?php
function welcome (string $username): string
{
return "Bem vindo {$username}";
}
const welcome = fn(string $username) => "Bem vindo {$username}";
PHP 8.0 (2020)
PHP 8.1 (2021)
PHP 8.2 (2022)
<?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
}
}
<?php
$month = 4;
echo match ($month) {
1 => "Janeiro",
2 => "Fevereiro",
3 => "Março",
4 => "Abril",
default => "Mês inválido",
};
<?php
$country = $session?->user?->getAddress()?->country;
<?php
enum Status
{
case Draft;
case Published;
case Archived;
}
<?php
class BlogData
{
public readonly Status $status;
public function __construct(Status $status)
{
$this->status = $status;
}
}
http://br.phptherightway.com/
http://php.net
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
www.alessandrofeitoza.eu
slides.com/alessandrofeitoza
phpcomrapadura.org
By Alessandro Feitoza
Evangelist PHP | Community Manager/Founder PHP com Rapadura