Extensões PHP

PHP é uma linguagem de programação que roda em uma máquina virtual chamada Zend Engine. Essa máquina virtual é escrita em C e permite que nós escrevamos código em C para embutir funcionalidades no PHP. Assim funcionam as extensões do PHP.

O que são extensões do PHP?

As extensões no PHP são códigos escritos em C que são, de certa forma, embutidos na linguagem, logo, se parecem com código nativo. É possível criarmos novas funções, classes e até criar sintaxe nova na linguagem a partir de extensões.

Quem usa PHP no dia-a-dia com certeza usa alguma extensão. Alguns exemplos de extensões PHP bem comuns:

  • PDO
  • Sessions
  • JSON
  • cURL

Tipos de extensões

Além de existir um número enorme de extensões do PHP, existem também alguns tipos onde elas podem ser categorizadas. Estes tipos são: Core Extensions, Bundled Extensions, External Extensions e PECL Extensions.

Core Extensions

As extensões Core, como o nome já diz, fazem parte do core (núcleo) do PHP. O PHP não existe sem elas e é impossível ter uma instalação do PHP sem estas. Alguns exemplos deste tipo de extensões são: Arrays, Classes/Objects, Date/Time, JSON, OPCache etc.

Estas extensões são mantidas pela própria equipe do PHP já que fazem parte da linguagem em si.

Bundled Extensions

As extensões empacotadas com o PHP, chamadas de bundled extensions, são extensões que já vêm junto com o PHP, mas é possível escolher habilitá-las ou não em sua instalação. Estas extensões também são mantidas pela equipe do PHP já que são empacotadas junto com o restante do código da linguagem.

Alguns exemplos de extensões deste tipo: PDO, GD, FFI, intl, Sessions etc.

External Extensions

As extensões externas são idênticas às bundled em quase todos os aspectos. Elas vêm com o PHP, podem ser habilitadas ou não e são mantidas pela equipe do core, porém possuem uma diferença: elas possuem dependências externas.

Para ter este tipo de extensão em sua instalação do PHP você vai precisar ter alguma outra biblioteca ou programa em seu sistema operacional. A extensão cURL, por exemplo, entra nessa categoria. Para ter essa extensão no PHP você precisa do software cURL instalado no sistema, já que a extensão faz uso do código disponibilizado por este software.

Alguns exemplos de extensões externas são: cURL, DOM, OpenSSL, Sodium, Zip etc.

PECL Extensions

Por último nós temos as extensões disponibilizadas por terceiros usando PECL, que é basicamente um repositório para extensões PHP, como se fosse o Packagist de extensões. Se você pretende criar uma extensão para o PHP, vai utilizar este repositório.

As extensões desta categoria são mantidas por terceiros e podem ou não possuir dependências externas. Nem todas as extensões desta categoria estão no manual da linguagem, afinal de contas é possível que qualquer pessoa crie uma extensão.

Alguns exemplos interessantes de extensões disponibilizadas através do PECL: DS (Data Structures), EV, Memcached, Parallel, Swoole etc.

Referências

Conhecer todas extensões do PHP é simplesmente impossível, mas conhecer bem algumas extensões mais importantes para seu dia-a-dia é de extrema importância.

Aqui você pode conferir a lista completa de extensões do manual do PHP, todas classificadas por categoria.

Se você tiver interesse em criar suas próprias extensões, existem alguns materiais interessantes disponíveis (embora não seja uma tarefa tão trivial). No tutorial How do I do Flavio Heleno você pode conferir o início dessa jornada de criação de extensões além de conferir outras referências.

Conclusão

A linguagem de programação PHP é escrita em C e possui diversas extensões que fazem parte ou não da linguagem. Nós fazemos uso de várias extensões no dia-a-dia e entender este funcionamento é bastante importante para devs PHP.

Se além de entender sobre algumas extensões você quiser aprender mais sobre PHP em si, você pode usar esse cupom que fornece 10% de desconto na assinatura da Alura, plataforma onde eu mesmo gravei diversos cursos sobre o assunto.