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_2023phpize
./configure
make
make installmake testAcesse 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.soVocê pode adicionar uma linha ao final do arquivo sem utilizar o nano, escreva:
echo "extension=phpconfbr.so" >> /etc/php/8.3/cli/php.iniphp -m
# Para pesquisar pela extensão específicamente
php -m | grep "phpconfbr"Marcos Marcolin | marcolindev@gmail.com | marcosmarcolin.com.br