Este repositório exemplifica conceitos abordados durante a minha apresentação na PHP Conference Brasil 2023.
A extensão criada, adiciona uma função nomeada base64_validate()
, além de uma classe chamada PHPConfBR
, com as seguintes assinaturas:
<?php
function base64_validate(string $str = ''): bool{}
class PHPConfBR
{
public function base64_validate(string $str = ''): bool {}
}
Alguns exemplos de uso:
<?php
$str = base64_encode('');
var_dump(base64_validate($str)); // false
$str = base64_encode('PHPConf');
var_dump(base64_validate($str)); // true
$PHPConfBR = new PHPConfBR();
$str = base64_encode('');
var_dump($PHPConfBR->base64_validate($str)); // false
$str = base64_encode('PHPConf');
var_dump($PHPConfBR->base64_validate($str)); // true
- Docker
Você pode realizar o processo sem o Docker
, utilizando simplesmente o PHP
e as dependências php-dev
instaladas em sua máquina.
Para fazer isso, omita as instruções relacionadas ao Docker.
A imagem descrita no Dockerfile
inclui:
- Debian 11
- Nano
- PHP 8.3.0
- Pacotes essenciais para compilar uma extensão PHP em C
docker build -t phpconfbr_2023 .
docker run -it -v $(pwd):/var/www phpconfbr_2023
phpize
./configure
make
make install
make test
Acesse o arquivo de configuração php.ini
do PHP para habilitar a extensão.
# Para descobrir o diretório do php.ini
php --ini
# Para editar o arquivo com o nano
nano /etc/php/8.3/cli/php.ini
# Adicione no final do arquivo
extension=phpconfbr.so
Você pode adicionar uma linha ao final do arquivo sem utilizar o nano
, escreva:
echo "extension=phpconfbr.so" >> /etc/php/8.3/cli/php.ini
php -m
# Para pesquisar pela extensão específicamente
php -m | grep "phpconfbr"
Marcos Marcolin | marcolindev@gmail.com | marcosmarcolin.com.br