Usando Extensões

Dependendo de processo de compilação que você escolheu, você deve ter no final ou um binário novo do PHP para ser montado com o seu servidor Web (ou executar como CGI), ou com um .so (objeto compartilhado). Se você compilou o arquivo de exemplo first_module.c como um objeto compartilhado, o arquivo resultante deve ser first_module.so. Para usá-lo, você tem que copiá-lo para um lugar onde ele seja acessível pelo PHP. Um procedimento simples de teste é copiá-lo para o seu diretório htdocs e testar com o código fonte em Exemplo 46-3. Se você compilou a sua extensão estaticamente no binário do PHP, omita a chamada à função dl(), já que funcionalidade do módulo está disponível instantaneamente para seus scripts.

Atenção

Por razões de segurança, você não deve colocar seus módulos dinâmicos em diretórios acessíveis publicamente. Embora seja possível e simplificar os testes, você deve colocá-los em um diretório separado em ambientes de produção.

Exemplo 46-3. Um arquivo de teste para first_module.so.

<?php

// remove as barras de comentário se necessário
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print(
"Nós enviamos '$param' e recebemos '$return'");

?>

Chamar esse arquivo do PHP no seu servidor web deve mostrar a saída mostrada em Figura 46-2.

Figura 46-2. Saída de first_module.php.

Se necessário, o módulo dinâmico é carregado pela chamada da função dl(). Essa função procura pelo objeto compartilhado especificado, carregá-o e torna suas funções disponíveis para o PHP. O módulo exporta a função first_module(), que aceita um único parâmetro, converte-o para inteiro, e retorna o resultado da conversão.

Se você chegou até aqui, parabéns! Você acabou de montar sua primeira extensão do PHP.