https://github.com/marcosmarcolin/phpconfbr_2023
Repositório de exemplo para a palestra 'Desenvolvendo sua primeira extensão em C para PHP', apresentada na PHP Conference Brasil 2023.
https://github.com/marcosmarcolin/phpconfbr_2023
php php7 php8 phpconf phpcore phpextension
Last synced: about 1 month ago
JSON representation
Repositório de exemplo para a palestra 'Desenvolvendo sua primeira extensão em C para PHP', apresentada na PHP Conference Brasil 2023.
- Host: GitHub
- URL: https://github.com/marcosmarcolin/phpconfbr_2023
- Owner: marcosmarcolin
- License: mit
- Created: 2023-12-05T11:55:58.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-11T16:14:05.000Z (over 2 years ago)
- Last Synced: 2025-03-25T09:15:00.328Z (about 1 year ago)
- Topics: php, php7, php8, phpconf, phpcore, phpextension
- Language: C
- Homepage:
- Size: 8.79 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Desenvolvendo sua primeira extens�o em C para PHP
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
base64_validate($str)); // false
$str = base64_encode('PHPConf');
var_dump($PHPConfBR->base64_validate($str)); // true
```
## Depend�ncias
- 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.
## Imagem
A imagem descrita no `Dockerfile` inclui:
- Debian 11
- Nano
- PHP 8.3.0
- Pacotes essenciais para compilar uma extens�o PHP em C
## Fa�a a constru��o da imagem conforme definido no `Dockerfile`:
```shell
docker build -t phpconfbr_2023 .
```
## Mapeie o volume e acesse o `shell` interativo da imagem:
```shell
docker run -it -v $(pwd):/var/www phpconfbr_2023
```
## Para compilar e instalar a extens�o:
```shell
phpize
./configure
make
make install
```
## Para executar os testes ap�s compilar:
```shell
make test
```
## Para habilitar a extens�o no `php-cli`:
Acesse o arquivo de configura��o `php.ini` do PHP para habilitar a extens�o.
```shell
# 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:
```shell
echo "extension=phpconfbr.so" >> /etc/php/8.3/cli/php.ini
```
## Para verificar se a extens�o foi carregada
```shell
php -m
# Para pesquisar pela extens�o espec�ficamente
php -m | grep "phpconfbr"
```
# Cr�ditos
Marcos Marcolin | marcolindev@gmail.com | [marcosmarcolin.com.br](https://marcosmarcolin.com.br)