framework
É uma estrutura ou plataforma que fornece uma base para o desenvolvimento de software. Ele oferece componentes, bibliotecas e regras pré-definidas que ajudam os desenvolvedores a criar aplicações de forma mais rápida, organizada e com menos código repetitivo.
Inversão de controle
O framework controla o fluxo do programa, chamando o código do desenvolvedor quando necessário.
Reutilização de código
Fornece funcionalidades comuns prontas.
Padronização
Define uma arquitetura e boas práticas.
Produtividade
Acelera o desenvolvimento ao abstrair tarefas complexas.
COMO CHEGUEI NA FACULDADE HOJE?
O PHP infelizmente ganhou uma má fama e isso não se deve às capacidades da linguagem. Muito pelo contrário! A linguagem é muito poderosa e flexível.
– Vinícius Dias
DEVOPS PARA PHP
<?php
// ============================================
// 1. FUNÇÃO SIMPLES (sem parâmetros)
// ============================================
function saudacao() {
echo "Olá, bem-vindo ao PHP!\n";
}
saudacao(); // Chama a função<?php
// ============================================
// 2. FUNÇÃO COM PARÂMETROS
// ============================================
function somar($a, $b) {
return $a + $b;
}
$resultado = somar(5, 3);
echo "Soma: $resultado\n"; // Soma: 8// ============================================
// 3. FUNÇÃO COM PARÂMETROS OPCIONAIS (default)
// ============================================
function saudar($nome, $saudacao = "Olá") {
return "$saudacao, $nome!";
}
echo saudar("Maria") . "\n"; // Olá, Maria!
echo saudar("João", "Bom dia") . "\n"; // Bom dia, João!// ============================================
// 4. FUNÇÃO COM TIPAGEM (PHP 7+)
// ============================================
function multiplicar(int $a, int $b): int {
return $a * $b;
}
echo multiplicar(4, 5) . "\n"; // 20// ============================================
// 5. FUNÇÃO COM PASSAGEM POR REFERÊNCIA
// ============================================
function dobrarValor(&$numero) {
$numero *= 2;
}
$valor = 10;
dobrarValor($valor);
echo "Valor dobrado: $valor\n"; // Valor dobrado: 20// ============================================
// 6. FUNÇÃO COM NÚMERO VARIÁVEL DE ARGUMENTOS
// ============================================
function calcularMedia(...$numeros) {
if (count($numeros) === 0) return 0;
return array_sum($numeros) / count($numeros);
}
echo calcularMedia(10, 20, 30) . "\n"; // 20
echo calcularMedia(5, 15, 25, 35, 45) . "\n"; // 25// ============================================
// 7. FUNÇÃO ANÔNIMA (Closure)
// ============================================
$dobro = function($numero) {
return $numero * 2;
};
echo $dobro(7) . "\n"; // 14
// Usando closure com array
$numeros = [1, 2, 3, 4, 5];
$dobrados = array_map(function($n) {
return $n * 2;
}, $numeros);
print_r($dobrados); // [2, 4, 6, 8, 10]// ============================================
// 8. ARROW FUNCTION (PHP 7.4+)
// ============================================
$triplo = fn($numero) => $numero * 3;
echo $triplo(4) . "\n"; // 12
// Exemplo com array
$precos = [10, 20, 30];
$comDesconto = array_map(fn($p) => $p * 0.9, $precos);
print_r($comDesconto); // [9, 18, 27]// ============================================
// 9. FUNÇÃO RECURSIVA
// ============================================
function fatorial($n) {
if ($n <= 1) return 1;
return $n * fatorial($n - 1);
}
echo "Fatorial de 5: " . fatorial(5) . "\n"; // 120// ============================================
// 10. FUNÇÃO ESTÁTICA (mantém valor entre chamadas)
// ============================================
function contador() {
static $count = 0;
$count++;
return $count;
}
echo contador() . "\n"; // 1
echo contador() . "\n"; // 2
echo contador() . "\n"; // 3// ============================================
// 11. FUNÇÃO COM CALLBACK
// ============================================
function processarArray($array, $callback) {
$resultado = [];
foreach ($array as $item) {
$resultado[] = $callback($item);
}
return $resultado;
}
$numeros = [1, 2, 3, 4];
$quadrados = processarArray($numeros, function($n) {
return $n ** 2;
});
print_r($quadrados); // [1, 4, 9, 16]Capture a 1ª atividade do professor Francisco Coelho e vamos executá-la tendo como foco principal o uso de funções.
Classes em PHP são estruturas (moldes) para criar objetos, definindo atributos (variáveis) e métodos (funções) que definem o comportamento de uma entidade. Definidas pela palavra-chave class, elas encapsulam dados e funcionalidades, sendo essenciais para a Programação Orientada a Objetos (POO).
new ($obj = new NomeDaClasse();).-> ($obj->nome).$this: Pseudovariável que refere-se ao objeto atual dentro da classe.class NomeDaClasse { ... }.public $nome;).public function falar() { ... }).<?php
class Pessoa {
// Atributos
public $nome;
public $idade;
// Construtor (método mágico)
public function __construct($nome, $idade) {
$this->nome = $nome;
$this->idade = $idade;
}
// Método
public function apresentar() {
return "Olá, meu nome é " . $this->nome . " e tenho " . $this->idade . " anos.";
}
}
// Instanciando o objeto
$pessoa1 = new Pessoa("João", 25);
echo $pessoa1->apresentar();
// Saída: Olá, meu nome é João e tenho 25 anos.public (acessível de qualquer lugar), protected (acessível na classe e filhas), private (acessível apenas na própria classe).extends para criar classes filhas.YouTube - Aula de Object-Oriented Programming (OOP)
Capture a 1ª atividade do professor Francisco Coelho e vamos executá-la tendo como foco principal o uso de funções.
Usando OOP.
<?php
class Medico {
public function __construct(
private string $crm,
private string $nome,
private string $especialidade) {
}
}<?php
class Paciente {
public function __construct(
private string $cpf,
private string $nome,
private string $telefone,
private string $dataNasc) {
}
}<?php
include_once 'Medico.php';
include_once 'Paciente.php';
class Consulta {
public function __construct(
private Medico $medico,
private Paciente $paciente,
private string $dia,
private string $horario) {
}
}<?php
include_once 'Modulos/Medico.php';
include_once 'Modulos/Paciente.php';
include_once 'Modulos/Consulta.php';
$medico = new Medico(
'123456',
'Dr. João',
'Cardiologia');
$paciente = new Paciente(
'12345678900',
'Maria Silva',
'(11) 98765-4321',
'01/01/1990');
$consulta = new Consulta(
$medico,
$paciente,
'10/10/2024',
'14:00');
var_dump($consulta);Como formatar um número de telefone seguindo padrões atuais.
Expressões regulares
<?php
class Telefone
{
public function __construct(private string $numero)
{
$digitos = preg_replace('/\D/', '', $numero);
if (strlen($digitos) !== 11) {
throw new Exception("Formato de telefone inválido", 1);
}
$this->numero = preg_replace('/(\d{2})(\d{5})(\d{4})/', '($1) $2-$3', $digitos);
}
}<?php
include_once 'Modulos/Medico.php';
include_once 'Modulos/Paciente.php';
include_once 'Modulos/Consulta.php';
include_once 'Configuracoes/Telefone.php';
try {
$telefone = new Telefone('869996924534');
$medico = new Medico(
'123456',
'Dr. João',
'Cardiologia');
$paciente = new Paciente(
'12345678900',
'Maria Silva',
$telefone,
'01/01/1990');
$consulta = new Consulta(
$medico,
$paciente,
'10/10/2024',
'14:00');
} catch (Exception $e) {
var_dump($e->getMessage());
exit;
}
var_dump($consulta);Projeto da clinica médica
Tentem adicionar mais de um número de telefone ao paciente.
Só pode adicionar no máximo 03 números.
<?php
use Luizlins\AtividadeClass\Modulos\Medico;
use Luizlins\AtividadeClass\Modulos\Paciente;
use Luizlins\AtividadeClass\Modulos\Consulta;
use Luizlins\AtividadeClass\Configuracoes\Telefone;
require_once 'vendor/autoload.php';
try {
$medico = new Medico('123456', 'Dr. João', 'Cardiologia');
$telefone = [new Telefone('86999692453'), new Telefone('86999692453')];
$dataNascimento = new \DateTimeImmutable('2024-10-10');
$paciente = new Paciente('12345678900', 'Maria Silva', $telefone, $dataNascimento);
$paciente->adicionarTelefone(new Telefone("86999996676"));
$dataConsulta = new \DateTimeImmutable('2024-10-10');
$consulta = new Consulta($medico, $paciente, $dataConsulta, '14:00');
} catch (Exception $e) {
var_dump($e->getMessage());
exit;
}
print_r($consulta);<?php
$caminhoBanco = __DIR__ . "/banco.sqlite";
$pdo = new PDO("sqlite:$caminhoBanco");
echo "Conectei";
$pdo->exec("
CREATE TABLE medicos (
id INTEGER PRIMARY KEY,
crm TEXT,
nome TEXT,
especializacao TEXT
);
");<?php
use Luizlins\AtividadeClass\Modulos\Medico;
require_once 'vendor/autoload.php';
$caminhoBanco = __DIR__ . "/banco.sqlite";
$pdo = new PDO("sqlite:$caminhoBanco");
$medico = new Medico(null, "CRM/PI 1233", "Luiz Lins", "Oftomologista");
$sqlInsert = "INSERT INTO medicos
(
crm,
nome,
especializacao
)
VALUES (
'{$medico->crm()}',
'{$medico->nome()}',
'{$medico->especialidade()}'
)";
var_dump($pdo->exec($sqlInsert));<?php
require_once 'vendor/autoload.php';
$caminhoBanco = __DIR__ . "/banco.sqlite";
$pdo = new PDO("sqlite:$caminhoBanco");
$statement = $pdo->query("SELECT * FROM medicos;");
var_dump($statement->fetchAll());<?php
// tentem fazer a busca dos dados inseridos.