Aprenda PHP moderno
Uma lista selecionada de recursos para PHP
Índice
- Deve ler
- Tutoriais
- Livros
- Curso On-line
- Referência
- O básico
- Noções básicas de PHP
- A pilha LAMP
- HTML/HTML5
- CSS
- JavaScript
- Protocolos
- Ambientes de Desenvolvimento Local
- Ferramentas
- IDEs
- Estruturas e bibliotecas
- Estruturas
- Microestruturas
- Bibliotecas
- Modelos
- POO
- Programação orientada a objetos
- Padrões de design
- SÓLIDO
- Injeção de dependência
- Melhores Práticas
- Controlador de visualização de modelo
- Banco de dados
- Noções básicas de banco de dados
- Livros de banco de dados
- Sistema de gerenciamento de banco de dados relacional (RDBMS)
- Normalização de banco de dados
- Declarações Preparadas
- NoSQL
- Bibliotecas de banco de dados
- Ferramentas de banco de dados
- Padrões
- Erros e tratamento de exceções
- Depuração
- Teste de unidade
- Documentação
- Sessões
- Traduções de texto
- Expressões Regulares
- XML
- API
- Controle de versão
- Segurança
- Arquitetura
- Design Orientado a Domínio (DDD)
- Arquitetura Hexagonal
- Programação Funcional
- Integração contínua e entrega contínua
- Revistas
- Mercadoria
- Comunidade e Notícias
Deve ler
- PHP da maneira certa
- O roteiro do desenvolvedor web
Tutoriais
- Tutorial completo de PHP 8 - Aprenda PHP da maneira certa em 2022
- PHP da frente para trás (vídeos)
- aprenda-php.org
- Aprenda PHP para desenvolvedores experientes
- PHP para iniciantes
- Pandas PHP
- Aprenda PHP em Y minutos
- Aprendiz de PHP
- PHP por exemplo
Livros
- Arquitetura avançada de aplicativos da Web
- Construindo aplicações modernas com PHP 8
- PHP moderno: novos recursos e boas práticas
- Guia de estilo de design de objetos
- Aprendendo PHP 7
- Guia de estudo para certificação PHP 7 Zend
- Aprenda PHP 8: usando MySQL, JavaScript, CSS3 e HTML5
- Referência rápida de script do PHP 8: um guia de bolso para scripts da Web em PHP
- Programação PHP (O'Reilly Media)
- A Arte do PHP 8 Moderno
Curso On-line
- CodeAcademy - Aprenda PHP
- Curso de código
- Exercismo - PHP (Prática e mentoria de código)
- SymfonyCasts – Construa algo incrível com PHP
- Casa na Árvore - Aprenda PHP
- Udemy-PHP
- DevProjects + Codementor (projetos PHP gratuitos e mentoria paga opcional)
- Cursos gratuitos de PHP
Referência
- Referência de idioma
- Folha de referências do PHP moderno
- Manual PHP
- Folha de dicas do PHP
O básico
Noções básicas de PHP
- Roteiro do desenvolvedor PHP - Como se tornar um desenvolvedor PHP
- Introdução ao PHP
- Tipos de dados PHP
- Loops PHP
- Noções básicas de matriz
- Trabalhando com matrizes
- PHP GET e POST
- PHP para iniciantes (edição 2023)
A pilha LAMP
- A pilha LAMP (Linux, Apache, MySql, PHP)
- Linux
- Servidor HTTP Apache
- MySQL
- PHP
- O que é uma pilha LAMP? (Vídeo)
HTML/HTML5
- HTML e HTML5
- Tutorial HTML
- Introdução ao HTML
- Um modelo HTML5 básico
- DOM
- Aprenda HTML
CSS
- Folhas de estilo em cascata
- Tutorial CSS
- Introdução ao CSS
- Introdução Seletores CSS
- Aprenda CSS
JavaScript
- JavaScript (também conhecido como ECMAScript)
- JavaScript básico
- Tutorial de JavaScript
- JavaScript eloquente
- Você não conhece JS (série de livros)
- Aprendizado incrível de JavaScript
- Aprenda JavaScript
Protocolos
- HTTP e HTTPS
- Solicitação/resposta HTTP, GET e POST
- Introdução aos princípios básicos de HTTP
- FTP
- SSH
- SMTP
- POP3
- IMAP
- Ájax
Ambientes de Desenvolvimento Local
- ddev
- EasyPHP Devserver e servidor web
- Herdade
- Laragón
- MAMP
- Servidor WAMP
- XAMPP
Ferramentas
- Navegador (Chrome, Firefox)
- Compositor (gerenciamento de dependências)
- WinSCP (cliente SFTP, SCP e FTP gratuito)
- Putty (um cliente SSH e telnet gratuito)
- PoEdit (editor de traduções gettext)
- Bloco de notas++ (editor de texto)
- 7-ZIP (arquivador de arquivos)
IDEs
- PHP Storm ($)
- Código do Visual Studio
Estruturas e bibliotecas
Estruturas
- Laravel (um framework muito popular)
- Lâminas
- Symfony (uma estrutura empresarial modular)
Microestruturas
- Slim Framework (uma microestrutura PHP que ajuda você a escrever rapidamente aplicações web e APIs simples, mas poderosas)
- Estrutura Slim 4 - Tutorial
- Slim Framework 4 - e-book
Bibliotecas
- Bibliotecas PHP incríveis
- Empacotador
Modelos
- Plates (um sistema de template PHP nativo)
- Twig (o mecanismo de template flexível, rápido e seguro para PHP)
- Twig – o mecanismo de modelo PHP independente mais popular
- Twig versus PHP plano
POO
Programação orientada a objetos
"Escreva um código tímido -
módulos que não revelam nada desnecessário para outros
módulos e que não dependem de implementações de outros módulos."
- Princípios Orientados a Objetos em PHP
- Classes e objetos
- Dominando PHP Orientado a Objetos (e-book)
- Objektorientierte Programmierung (alemão)
- Bootcamp Orientado a Objetos
- Aprendendo OOP em PHP
Padrões de design
- Padrões de Projeto em PHP (Laracasts)
- Padrões de projeto em PHP
- Gangue dos Quatro Padrões de Design (Livro)
- Padrões de Design para Humanos™
- Padrões de DesignPHP
- Vários padrões de design em PHP
- Curso de Padrões de Projeto em PHP (Vídeo)
SÓLIDO
SOLID é um acrônimo mnemônico para cinco princípios de design destinados a tornar os projetos de software mais compreensíveis, flexíveis e fáceis de manter.
- SÓLIDO
- Os primeiros 5 princípios do design orientado a objetos
Injeção de dependência
- Uma introdução à injeção de dependência
- O que é injeção de dependência?
- O Código Limpo Fala – Não procure pelas coisas! (Vídeo)
- PSR-11: Interface do contêiner
- Desmistificando contêineres de injeção de dependência por Kai Sassnowski (vídeo)
Melhores Práticas
BEIJO
A simplicidade é um pré-requisito para a confiabilidade.
-Edsger W. Dijkstra
- KISS - Mantenha as coisas simples, estúpido
- Princípio do BEIJO
YAGNI
Você não vai precisar disso
- YAGNI
- Você não vai precisar disso
- KISS e YAGNI
- YAGNI, culto à carga e superengenharia
SECO
"DRY - Não se repita
Cada pedaço de conhecimento deve ter um único,
representação inequívoca e oficial dentro de um sistema”.
DRY é ter uma fonte de verdade. Não se trata de erradicar freneticamente a duplicação da sua base de código.
Outro
- Melhores práticas da TheCodingMachine
- Volte cedo, volte sempre
- Variáveis globais são ruins
- Controladores finos e modelos gordos
- O que fazer e o que não fazer em PHP, também conhecidos como programadores que eu não gosto
- Composição sobre herança
- Código Limpo PHP
- Calistenia de objetos
Controlador de visualização de modelo
A maioria dos frameworks em PHP segue algum tipo de estrutura MVC. A teoria é simples:
O usuário faz interface com a visualização, que passa informações para um controlador. O controlador então passa essas informações para um modelo (camada), e o modelo passa as informações de volta para o controlador. O controlador efetivamente fica entre a visualização e o modelo. (Brandon James Savage)
- Wikipédia MVC
- MVC em termos mais simples ou a estrutura de uma aplicação web moderna
- Visão geral do MVC
- MVC para iniciantes
- Uma melhor compreensão do MVC
- Controladores finos, modelos gordos
- MVC para desenvolvedores PHP avançados
- Uma melhor compreensão do MVC
- Modelo MVC 2
- Respondente de Domínio de Ação (ADR)
Banco de dados
Noções básicas de banco de dados
- Banco de dados
- Modelo de banco de dados
- As 12 regras de Codd *
- O único tutorial DOP adequado
- Tutorial SQL
- Datenbank Grundlagen (alemão)
- MTC
- Tutorial Datenbank-Grundlagen (alemão)
- Tutorial Datenbank-Grundlagen: Primärschlüssel (alemão)
Sistema de gerenciamento de banco de dados relacional (RDBMS)
- MySQL
- Maria DB
- Servidor SQL da Microsoft
- Oráculo
- SQLite
Livros de banco de dados
- Livro MySQL grátis
- MySQL de alto desempenho: otimização, backups e replicação
Normalização de banco de dados
Programadores ruins se preocupam com o código. Bons programadores se preocupam com estruturas de dados e seus relacionamentos.
- Normalização de banco de dados
- Primeira forma normal (1NF)
- Segunda forma normal (2NF)
- Terceira forma normal (3NF)
- Descrição dos fundamentos da normalização do banco de dados
- Der Königsweg: Normalisierung (alemão)
- Normalisierung (alemão)
- MySQL - Normalisierung (alemão)
Declarações Preparadas
- Declaração preparada
- Instruções preparadas – Proteção contra injeções de SQL
- Declarações preparadas em PHP
Bibliotecas de banco de dados
- Construtor de Consultas CakePHP
- Construtor de consultas Illuminate (Laravel)
- Construtor de consultas de banco de dados Laminas
- Phinx - migrações de banco de dados
Ferramentas de banco de dados
- Edição da comunidade SQLyog
- SQLyog - A GUI MySQL mais completa e fácil de usar ($)
- Ambiente de trabalho MySQL
- HeidiSQL
- SequelPro
- Navicat ($)
- DBeaver
NoSQL
- NoSQL
- Redis (armazenamento de estrutura de dados na memória, usado como banco de dados, cache e corretor de mensagens)
- MongoDB (banco de dados orientado a documentos)
Padrões
Siga as convenções PHP comuns para código orientado a objetos e as melhores práticas estabelecidas do setor: PSR-1, PSR-12, PSR-4.
- Grupo de interoperabilidade PHP Framework
- Padrão Básico de Codificação PSR-1
- Guia de estilo de codificação PSR-12
- Interface do registrador PSR-3
- Carregador automático PSR-4
- Esqueleto de pacote PHP padrão
- Um repositório básico para pacotes de liga
- Versionamento Semântico 2.0.0
- Mantenha um changelog
Erros e tratamento de exceções
- Erros e exceções
- Tratamento de erros com práticas recomendadas de PHP
- Exceções
- Exceções predefinidas
- Exceções SPL
- Erros e tratamento de erros
Depuração
- Xdebug (depurador)
- XAMPP - Configuração do XDebug para PHP 7
- XAMPP - Configuração do XDebug para PHP 8
Teste de unidade
“Os testadores de software não criam software; eles apenas os tornam melhores. – Anônimo
- PHPUnit - estrutura de teste
- Teste de unidade, teste de integração, teste de fumaça, teste de regressão
- Testes Unitários, Testes de Integração e Testes Funcionais
- A Pirâmide de Teste
- O Caminho do Testivus (pdf)
- Teste de banco de dados
- Melhores práticas para testes de banco de dados com PHPUnit
- Testes de banco de dados com PHPUnit
- Configuração do Fixture do Banco de Dados no PHPUnit
- A maneira correta de usar testes de integração
- 100% de cobertura de código por meio de testes automatizados em aplicativos Symfony
- E-book Construindo Desenvolvedores Orientados a Testes
- Escreva testes. Não muitos. Principalmente integração
- O teste de unidade é superestimado
Documentação
Não comentar seu código quando você é programador deveria ser ilegal - @RiaCorpeno
PHPdoc destina-se a documentar seu código. A intenção é que você sempre adicione comentários aos seus parâmetros e retorne tipos em docblocks que descrevam o que eles fazem. Existe um software que pode ler seu código e produzir documentação em formato pdf ou HTML que descreve todas as suas classes e funções, bem como o que elas fazem e como usá-las. É um sistema de documentação inline como o nome indica.
- Introdução ao PhpDoc
- O padrão PHPDoc (PSR-5) para comentários
- Wiki do PHPDoc
- Sintaxe básica do PHPDoc
- Anatomia de um DocBlock
- Seu primeiro conjunto de documentação
Sessões
- Sessões PHP
- Tratamento de Sessão
- Biscoito
- Gerenciamento de sessão
- Sessões PHP em profundidade
Traduções de texto
- Internacionalização e localização (i18n)
- Symfony: o componente de tradução
- Editor de traduções PoEdit Gettext
Expressões Regulares
- Expressão regular
- Funções PCRE
- PHP Live Regex (um testador de expressões regulares ao vivo para PHP)
- PHPrex (um testador visual de expressões regulares para PHP)
XML
- XML (linguagem de marcação extensível)
- XSD (definição de esquema XML)
API
API RESTful
- Recursos de API REST, RESTful e semelhantes a REST
- REST, referência rápida da API RESTful
- Diretrizes da API
- 7 regras para design de URI de API REST
API SOAP
- SOAP (protocolo de acesso a objetos simples)
- A extensão SOAP A extensão SOAP pode ser usada para escrever servidores e clientes SOAP.
- Serviço web
- WSDL (linguagem de descrição de serviços da Web)
- Implementando uma API SOAP com PHP
Controle de versão
- O que é controle de versão
- GitHub
- Recursos para aprender Git
- Um tutorial de introdução ao Git
- Git – O guia simples
- O livro Pro Git
Segurança
Um bom programador olha para os dois lados antes de atravessar uma rua de mão única.
- Fundamentos de segurança na Web - Um curso intensivo
- Folha de dicas de segurança do PHP
- PHP da maneira certa - Segurança
- XSS
- As informações mais recentes sobre software PHP seguro
- Dicas de segurança para um aplicativo PHP
- A lista de verificação definitiva de segurança do PHP
- Melhores práticas de segurança PHP
Arquitetura
- "Arquitetura Limpa" do Tio Bob (livro)
- A Arquitetura Limpa
- Padrões de arquitetura de aplicativos empresariais - Martin Fowler
- A Arquitetura Onion Parte 1
- Uma jornada em direção a código limpo e diversão - Agilidade, TDD, padrões OOP, MVC, desacoplamento de estrutura
Design Orientado a Domínio (DDD)
- DDD para iniciantes
- Design Orientado a Domínio: Enfrentando a Complexidade no Coração do Software (O Livro Azul)
- Implementando Design Orientado a Domínio (O Livro Vermelho)
- Projete um microsserviço orientado a DDD
- Referência de design orientado a domínio (um resumo dos padrões e definições de DDD, PDF)
- Serviços em Design Orientado a Domínio
- Criando serviços que você não vai odiar
- Design Orientado a Domínio (O livro azul DDD)
- Implementando Design Orientado a Domínio (O livro vermelho DDD)
Arquitetura Hexagonal
- Arquitetura de portas e adaptadores
- Arquitetura Hexagonal desmistificada
- Arquitetura Hexagonal
- Alistair no "Hexágono"
- Guia de estilo de design de objetos
- Arquitetura avançada de aplicativos da Web
Programação Funcional
- Arquitetura funcional – Os poços do sucesso – Mark Seemann (Vídeo)
Integração contínua (CI) e entrega contínua (CD)
- Entrega Contínua (Livro)
- Entrega contínua de projetos PHP (Vídeo)
- Integração Contínua vs. Entrega Contínua vs. Implantação Contínua
- O que é implantação contínua?
- PHP e Integração Contínua com Travis CI
- Docker para desenvolvedores PHP
Revistas
- arquiteto php (inglês)
- PHPmagazin (alemão)
- desenvolvedor web e mobile (alemão)
Mercadoria
- A loja oficial de elefantes - Boutique elePHPant
- Mercadoria PHPUnit
- Adesivos PHP
Comunidade / Notícias
- @oficial_php
- r/PHP
- r/PHPajuda
- PHP em dev.to
- Hashnode/php
- Estouro de pilha
- Boletim informativo semanal sobre PHP
- Boletim informativo Freek.dev
- Correio de costura
- Boletim informativo incrível sobre PHP
- JetBrains - PHP anotado mensalmente
- Internos do PHP
- PHP-Digest por Roman Pronsky (russo)
- Lista de blogs PHP
- Conferências PHP ao redor do mundo
- Sala de bate-papo PHP no StackOverflow
- Quando será o próximo encontro de PHP?