5 minutos de lectura
Resumen
PHP es una opción muy popular entre los desarrolladores y cuenta con una amplia comunidad gracias a su larga trayectoria en el desarrollo web. En esta guía, explicaremos cómo conectarse a Ethereum con PHP utilizando la biblioteca web3.php.
Requisitos previos
- Un editor de texto
- CLI
¿Qué es PHP?
PHP, que en un principio significaba «Personal Home Page», es ahora un acrónimo recursivo de PHP: Hypertext Preprocessor. Se trata de un lenguaje de scripting de uso general que se emplea principalmente para desarrollar el back-end de sitios web. El código PHP se procesa en el lado del servidor mediante un intérprete de PHP. PHP puede integrarse en HTML, utilizarse en archivos independientes y en la línea de comandos. Es de código abierto y compatible con múltiples plataformas. PHP 7+ es rápido, lo utilizan casi el 80 % de los sitios web y se encuentra en pleno desarrollo. Tiene una gran demanda y se puede utilizar para crear sitios web dinámicos, sistemas de plantillas, procesar datos enviados por los usuarios, sitios web de comercio electrónico, etc.
**¿Por qué utilizar PHP?
**
- PHP es un lenguaje maduro, bien probado y predecible.
- Cuenta con numerosas bibliotecas de código abierto, lo que te permite hacer muchas cosas con él desde el primer momento.
- Aunque procede de la familia del C++, los códigos PHP son comparativamente más cortos.
- Se integra fácilmente en el entorno HTML/CSS, a diferencia de otros lenguajes.
- Cuenta con numerosos marcos de trabajo impresionantes, como Symfony y Laravel.
- Su curva de aprendizaje es más corta en comparación con JSP y ASP.
- Permite a los desarrolladores llevar a cabo muchas tareas complejas de forma muy rápida y sencilla.
**¿Cuáles son las características de PHP?
**
- Escalabilidad: permite crear aplicaciones web escalables.
- Flexibilidad: es compatible con los principales sistemas operativos.
- Sencillez: fácil y sencillo de usar en comparación con otros lenguajes de scripting.
- Distinción entre mayúsculas y minúsculas: PHP es un lenguaje que distingue entre mayúsculas y minúsculas en el momento de la declaración de variables. Las palabras clave, las clases, las funciones y las funciones definidas por el usuario no distinguen entre mayúsculas y minúsculas.
- Tipado flexible: en PHP, las variables pueden declararse sin especificar el tipo de datos. Este se determina en el momento de la interpretación, en función del tipo de datos que contengan.
- Interpretado: PHP es un lenguaje interpretado, lo que significa que no es necesario compilarlo.
- Código abierto: es de código abierto, lo que significa que su uso es gratuito y que cuenta con un buen mantenimiento.
¿Qué es web3.php?
Web3.php es una interfaz PHP que permite conectarse e interactuar con la cadena de bloques de Ethereum. Es de código abierto y se puede utilizar para obtener datos de la cadena de bloques e interactuar con contratos desplegados. Cuenta con compatibilidad integrada con los módulos JSON RPC de Ethereum: eth, web3, net y shh.
Para lo que nos ocupa hoy, vamos a obtener el número del último bloque de la cadena de bloques de Ethereum para demostrar la conexión entre nuestro código y Ethereum.
Utilizaremos web3.php y un nodo de Ethereum.
Instalación de PHP y web3.php
Antes de instalar web3.php, comprobemos si tenemos PHP instalado en nuestro sistema. Para ello, copia y pega el siguiente código y ejecútalo en tu terminal o en el símbolo del sistema.
php -v
Debería mostrar la versión de PHP. Si no está instalado, descarga la versión de PHP específica para tu sistema operativo siguiendo las instrucciones de la página de descargas del sitio web oficial de PHP.
Tendremos que instalar la extensión gmp de PHP. Puedes quitar el comentario del archivo php.init o instalarla manualmente siguiendo estos pasos.
sudo apt-get instalar php-gmp
Nota: Debemos habilitar gmp utilizando únicamente uno de los métodos mencionados anteriormente.
Para Mac:
Reinstalar PHP con brew puede ayudar a habilitar la extensión gmp.
Ejecuta los siguientes comandos:
brew reinstall php@7.2
export PATH="/usr/local/opt/php@7.2/bin:$PATH"
brew services restart php@7.2
php -info | grep "GMP"
Utilizaremos Composer, una herramienta para gestionar bibliotecas y dependencias de PHP. Comprueba si Composer está instalado en tu sistema ejecutando lo siguiente en tu terminal o en el símbolo del sistema:
compositor
Si aún no lo tienes instalado, descárgalo e instálalo siguiendo las instrucciones de la página de descargas del sitio web de Composer.
Ahora crea un archivo JSON llamado composer.json en el directorio de tu proyecto y copia y pega en él lo siguiente.
{
"require": {
"sc0vu/web3.php": "dev-master"
}
}
A continuación, ejecuta el siguiente comando para instalar las dependencias necesarias en el directorio.
compositor instalar
Nota: Si te surge algún error en Linux en este punto, prueba a instalar la siguiente dependencia:
sudo apt-get instalar php-mbstring
Configura tu punto de conexión de Ethereum en Quicknode
Para lo que nos ocupa hoy, podríamos utilizar prácticamente cualquier cliente de Ethereum, como Geth u OpenEthereum (antes conocido como Parity). Como eso resulta un poco complicado solo para consultar la altura del bloque, crearemos aquí una cuenta gratuita de Quicknode y generaremos fácilmente un punto de conexión de Ethereum. Puede ser una red de pruebas (como Goerli o Sepolia) o la red principal. Una vez que hayas creado tu punto de conexión gratuito de Ethereum, copia el punto de conexión de tu proveedor HTTP:

Lo necesitarás más adelante, así que cópialo y guárdalo.
Conexión a Ethereum con PHP
Ahora, crea un archivo de script PHP llamado «index.php» en el directorio de tu proyecto y copia y pega en él lo siguiente.
<?
require_once "vendor/autoload.";
use Web3\Web3;
use Web3\Providers\HttpProvider;
use Web3\RequestManagers\HttpRequestManager;
$web3 = new Web3(new HttpProvider(new HttpRequestManager("ADD_YOUR_ETHEREUM_NODE_URL")));
$eth = $web3->eth;
$eth->blockNumber(function ($err, $data) {
echo "Latest block number is: ". $data . " \n";
});
?>
Asegúrate de sustituir `ADD_YOUR_ETHEREUM_NODE_URL` por el proveedor HTTP indicado en la sección anterior.
Explicación del código anterior.
Línea 1: Inicio del script PHP con la etiqueta de apertura de PHP.
Líneas 3-7: Importación de las dependencias instaladas.
Línea 9: Inicialización de la instancia de web3, de una instancia de HttpProvider y especificación de la URL del nodo.
Línea 11: Creamos una nueva variable «eth» y conectamos la instancia de web3 a «eth» para utilizar los métodos de «eth» a través de nuestro nodo.
Línea 13: Obtenemos el número de bloque más reciente de la cadena mediante el método blockNumber(), que, en realidad, utiliza eth_blockNumber. A continuación, mostramos el número de bloque junto con una cadena.
Guarda el archivo y ejecuta el script PHP escribiendo lo siguiente en tu terminal/cmd:
$ php index.php
Si todo va bien, verás un resultado en el que se muestra el número del último bloque.

Conclusión
Enhorabuena por haberte conectado a la red de Ethereum mediante PHP. Ahora puedes sacar partido a la red de Ethereum integrándola en tus aplicaciones del lado del servidor, lo que las hará más seguras y robustas.
Aprende a generar una nueva dirección de Ethereum en PHP y a conectarte a la red de Ethereum utilizando distintos lenguajes de programación.
Suscríbete a nuestro boletín para recibir más artículos y guías sobre Ethereum. Si tienes algún comentario, no dudes en ponerte en contacto con nosotros a través de Twitter. Siempre puedes charlar con nosotros en nuestro servidor de la comunidad de Discord, donde encontrarás a algunos de los desarrolladores más geniales que jamás hayas conocido :)
