Pular para conteúdo

Aula 01 - Introdução ao PHP Moderno 🐘


🎯 Objetivo da Aula

  • Entender a evolução histórica do PHP.
  • Conhecer as novidades do PHP 8.x.
  • Dominar o ecossistema profissional (Composer e PSRs).
  • Preparar o "mindset" para o desenvolvimento moderno.

🚀 O PHP não morreu!

  • Ele alimenta 77% da web (WordPress, Wikipedia, Slack).
  • Evoluiu de uma linguagem de script para uma plataforma robusta.
  • O foco atual é: Performance e Tipagem Forte.

⏳ Linha do Tempo

  • PHP 5.x: A era de ouro do CMS.
  • PHP 7.x: Revolução da performance (PHP-NG).
  • PHP 8.x: JIT, Tipagem Union, Atributos e Modernidade Crua.

🌍 Ecossistema Moderno

graph LR
    A[Linguagem] --> B[Ecossistema]
    B --> C[Composer]
    B --> D[PSRs]
    C --> E[Packagist]
    D --> F[Interoperabilidade]

📦 O Papel do Composer

  • Gerenciador de dependências.
  • Não é um gerenciador de pacotes do sistema (como apt-get).
  • Resolve a "Hell of Dependencies".

🛠️ Comandos Essenciais

  • composer init: Configura o projeto.
  • composer install: Instala o que está no lock.
  • composer update: Atualiza as versões.

📐 PSRs: O que são?

  • PHP Standard Recommendations.
  • Criadas pelo PHP-FIG.
  • Objetivo: Fazer o código de um desenvolvedor "falar" com o de outro.

🔍 PSR-1 e PSR-12

  • Padrões de codificação.
  • Tags PHP: sempre <?php.
  • CamelCase para métodos.
  • PascalCase para Classes.

🔄 PSR-4: Autoloading

  • Mapeamento de Namespaces para Pastas.
  • Elimina o uso de milhares de require_once.
  • Essencial para o Laravel.

🧬 Tipagem Forte (PHP 8)

public function soma(int $a, int $b): int 
{
    return $a + $b;
}
- Menos bugs em produção. - Melhor suporte da IDE (Autocomplete).


⛓️ Union Types

  • string|int: Quando uma variável pode ser texto ou número.
  • mixed: O tipo curinga (use com moderação).

⚡ Just-In-Time (JIT)

  • Compila partes do código para código de máquina em tempo real.
  • Ganho massivo em cálculos matemáticos pesados.

🆚 Switch vs Match

  • match: É uma expressão (retorna valor).
  • Sem break necessário.
  • Comparação estrita (===).

🏗️ Ambiente Profissional

  • PHP 8.2+
  • Composer 2.x
  • Docker (opcional, mas recomendado)
  • VS Code + Intelephense

🚩 PSR-7: HTTP Messages

  • Padroniza como Req/Res são tratadas.
  • Base para middlewares modernos.

📚 Documentação

  • PHP.net: O manual supremo.
  • Laracasts: A Netflix do PHP.
  • Packagist.org: Onde a mágica (pacotes) mora.

💡 Dica de Ouro

  • Nunca tente reinventar a roda sem necessidade.
  • Se alguém já criou um pacote PSR-4 testado, use-o!

🧗‍♂️ Desafio Aula 01

  • Criar um projeto composer init.
  • Instalar o pacote monolog/monolog.
  • Gerar um arquivo de log simples.

🏁 Conclusão

  • PHP é moderno.
  • O ecossistema é baseado em padrões.
  • Estamos prontos para o Laravel!

🙋‍♂️ Dúvidas?

"O código limpo é aquele que parece ter sido escrito por alguém que se importa." (Robert C. Martin)