Como Criar Extensões para PHP com C/C++

Aprenda criar extensões para diversas bibliotecas C/C++.


Como Criar Extensões para PHP com C/C++


🔊 Saber como usar e escrever extensões PHP é uma habilidade crítica de desenvolvimento de PHP que pode economizar um tempo significativo e permitir que você adicione rapidamente novos recursos aos seus aplicativos. Nesse vídeo veremos como criar extensões para o PHP utilizando C/C++.


Assista ao Vídeo


Códigos criados no vídeo

Dependências:

Exemplo em Sistemas que usam o APT.

sudo apt-get install build-essential php php-dev \
             autoconf automake bison flex re2c gdb \
             libtool make pkgconf valgrind git libxml2-dev libsqlite3-dev

Arquivo terminalroot.cpp:

Diferentemente do vídeo em ~ZEND_GET_MODULE(terminalroot_php)~ tem de ser: ZEND_GET_MODULE(terminalroot).

extern "C"{
  #include <php.h>
}

#define PHP_TERMINALROOT_EXTNAME "terminalroot"
#define PHP_TERMINALROOT_VERSION "0.0.1"

PHP_FUNCTION(terminalroot_php);

ZEND_BEGIN_ARG_INFO(arginfo_terminalroot_php, 0)
ZEND_END_ARG_INFO()

zend_function_entry terminalroot_php_functions[] = {
    PHP_FE(terminalroot_php, arginfo_terminalroot_php)
    {NULL, NULL, NULL}
};

zend_module_entry terminalroot_php_module_entry = {
    STANDARD_MODULE_HEADER,
    PHP_TERMINALROOT_EXTNAME,
    terminalroot_php_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    PHP_TERMINALROOT_VERSION,
    STANDARD_MODULE_PROPERTIES
};

ZEND_GET_MODULE(terminalroot)

PHP_FUNCTION(terminalroot_php){
    printf("Minha Primeira Extensão PHP com C++\n");
}

Arquivo config.m4:

PHP_ARG_ENABLE(terminalroot, Somente um exemplo Básico de Extensão PHP com C++, [ --enable-terminalroot Habilite o Suporte dessa Ext])
if test "$TERMINALROOT" != "no"; then
    PHP_NEW_EXTENSION(terminalroot, terminalroot.cpp, $ext_shared)
    PHP_REQUIRE_CXX() # Se estiver escrevendo em C, ignore essa linha
fi

Para compilar:

phpize
./configure --enable-terminalroot
make
sudo make install

Arquivo script.php:

<?php
    terminalroot_php();

Rodar o arquivo PHP com a extensão:

php -dextension=terminalroot script.php

Links úteis


cpp linguagemc php


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!