如何使用PHP连接到以太坊

  • QuickNode
  • 发布于 2024-10-16 11:46
  • 阅读 35

本文介绍了如何使用PHP及web3.php库连接到以太坊区块链,内容涵盖从PHP的基本介绍到环境配置,以及具体的代码示例与运行步骤,帮助开发者在后端应用中集成以太坊功能。

概述

PHP 是开发者中非常流行的选择,并因其在网页开发中的长期存在而拥有庞大的社区。在本指南中,我们将介绍如何使用 web3.php 库通过 PHP 连接到以太坊。

前置条件

  • 文本编辑器
  • CLI

什么是 PHP?

PHP,最初代表个人主页(Personal Home Page),现在是一个递归缩写,代表 PHP: 超文本预处理器(Hypertext Preprocessor)。它是一种通用脚本语言,最常用于构建网站的后端。PHP 代码在服务器端由 PHP 解释器处理。PHP 可以嵌入到 HTML 中,使用独立文件,也可以在命令行中使用。它是开源的,具有跨平台兼容性。PHP 7+ 速度快,几乎被 80%的网站 使用,并且还在积极开发中。它的需求量很大,可以用于创建动态网站、模板系统、处理用户提交的数据、电子商务网站等。

为什么使用 PHP?

  • PHP 成熟,经过良好测试,可预测性强。

  • 它拥有大量开源库,因此你可以立即用它做许多事情。

  • 尽管来源于 C++ 家族,PHP 代码相对较短。

  • 与其他语言不同,PHP 可以轻松集成到 HTML/CSS 栈中。

  • 它拥有许多令人印象深刻的框架,如 Symfony 和 Laravel。

  • JSPASP 相比,学习曲线较短。

  • 允许开发者快速轻松地实现许多复杂功能。

PHP 的特点?

  • 可扩展性 - 帮助构建可扩展的 веб 应用程序。
  • 灵活性 - 适用于主要操作系统。
  • 简单性 - 与其他脚本语言相比,使用简单明了。
  • 区分大小写 - PHP 是一种在变量声明时区分大小写的语言。所有关键字、类、函数和用户定义函数都不区分大小写。
  • 松散类型 - 在 PHP 中,变量可以在没有数据类型的情况下声明。数据类型在解释时根据包含的数据类型确定。
  • 解释性 - PHP 是一种解释性语言,意味着不需要编译。
  • 开源 - 这是开源的,这意味着可以免费使用并得到良好维护。

什么是 web3.php?

Web3.php 是一个用于连接和与以太坊区块链进行交互的 PHP 接口。它是开源的,可以用于获取区块链数据并与已部署的合约进行交互。它内置支持以太坊的 eth、web3、net 和 shh JSON RPC 模块

今天我们将获取以太坊区块链的最新区块号,以演示代码与以太坊之间的连接。

我们将使用 web3.php 和以太坊节点。

安装 PHP 和 web3.php

在安装 web3.php 之前,我们先检查一下系统中是否安装了 PHP。为此,请在终端/cmd 中复制粘贴并运行以下命令。

php -v

它应该返回 PHP 版本。如果没有安装,请按照官方 PHP 网站的下载页面 上的说明下载特定于操作系统的 PHP。

我们需要安装 PHP gmp 扩展。你可以从 php.ini 文件中取消注释, 使用以下命令手动安装。

sudo apt-get install php-gmp

注意:我们应该使用上述方法中的任意一种来启用 gmp。

对于 mac:

使用 brew 重新安装 PHP 可以帮助启用 gmp 扩展。

运行以下命令:

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"

我们将使用 composer,一个管理 PHP 库/依赖性的工具。通过在终端/cmd 中运行以下命令来检查 composer 是否已安装:

composer

如果未安装,请按照 Composer 网站的下载页面 下载并安装。

现在在你的项目目录中创建一个名为 composer.json 的 JSON 文件,并复制粘贴以下内容。

{
    "require": {
        "sc0vu/web3.php": "dev-master"
    }
}

然后运行以下命令在目录中安装所需的依赖项。

composer install

注意:如果此时你在 Linux 上遇到任何错误,请尝试安装以下依赖项:

sudo apt-get install php-mbstring

设置你的 QuickNode 以太坊端点

我们今天可以使用几乎任何以太坊客户端;例如 Geth 或 OpenEthereum(前称 Parity)。因为查询区块高度有点复杂,我们将在这里创建一个免费的 QuickNode 账户 这里,并轻松生成以太坊端点。它可以是测试网(如 Goerli 或 Sepolia)或主网。在你创建免费的以太坊端点后,复制你的 HTTP 提供程序端点:

Quicknode 以太坊端点开始页面的屏幕截图,包含一个 HTTP 链接和 WSS

你稍后需要此信息,因此请复制并保存。

使用 PHP 连接到以太坊

现在,在你的项目目录中创建一个名为 index.php 的 PHP 脚本文件,并复制粘贴以下内容。

<?

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 "最新区块号是: ". $data . " \n";
});
?>

确保将 **ADD_YOUR_ETHEREUM_NODE_URL** 替换为上面部分的 HTTP 提供程序。

上面代码的解释。

第 1 行:以 PHP 开始脚本。

第 3-7 行:导入已安装的依赖项。

第 9 行:初始化 web3 实例、HttpProvider 实例,并提供节点 URL。

第 11 行:创建一个新变量 eth 并将 web3 实例与 eth 连接,以使用我们的节点调用 eth 方法。

第 13 行:使用 blockNumber() 方法从区块链获取最新的区块号,在底层使用 eth_blockNumber。然后我们打印区块号和一个字符串。

保存文件,并通过在终端/cmd 中输入以下命令来运行 PHP 脚本:

$ php index.php

如果一切顺利,你将看到一个输出,显示最新的区块号。

结论

恭喜你使用 PHP 连接到以太坊网络。现在,你可以通过将以太坊网络集成到你的服务器端应用程序中,充分利用以太坊网络,使其更加安全和强大。

了解 如何使用 PHP 生成新的以太坊地址 以及使用各种编程语言连接到以太坊网络。

订阅我们的 新闻通讯,获取更多以太坊的文章和指南。如果你有任何反馈,欢迎通过 Twitter 与我们联系。你也可以随时在我们的 Discord 社区服务器上与我们聊天,那里聚集了一些你可能遇到的最酷的开发者 :)

  • 原文链接: quicknode.com/guides/eth...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。