本文介绍了如何使用PHP及web3.php库连接到以太坊区块链,内容涵盖从PHP的基本介绍到环境配置,以及具体的代码示例与运行步骤,帮助开发者在后端应用中集成以太坊功能。
PHP 是开发者中非常流行的选择,并因其在网页开发中的长期存在而拥有庞大的社区。在本指南中,我们将介绍如何使用 web3.php 库通过 PHP 连接到以太坊。
前置条件
PHP,最初代表个人主页(Personal Home Page),现在是一个递归缩写,代表 PHP: 超文本预处理器(Hypertext Preprocessor)。它是一种通用脚本语言,最常用于构建网站的后端。PHP 代码在服务器端由 PHP 解释器处理。PHP 可以嵌入到 HTML 中,使用独立文件,也可以在命令行中使用。它是开源的,具有跨平台兼容性。PHP 7+ 速度快,几乎被 80%的网站 使用,并且还在积极开发中。它的需求量很大,可以用于创建动态网站、模板系统、处理用户提交的数据、电子商务网站等。
为什么使用 PHP?
PHP 成熟,经过良好测试,可预测性强。
它拥有大量开源库,因此你可以立即用它做许多事情。
尽管来源于 C++ 家族,PHP 代码相对较短。
与其他语言不同,PHP 可以轻松集成到 HTML/CSS 栈中。
它拥有许多令人印象深刻的框架,如 Symfony 和 Laravel。
允许开发者快速轻松地实现许多复杂功能。
PHP 的特点?
Web3.php 是一个用于连接和与以太坊区块链进行交互的 PHP 接口。它是开源的,可以用于获取区块链数据并与已部署的合约进行交互。它内置支持以太坊的 eth、web3、net 和 shh JSON RPC 模块。
今天我们将获取以太坊区块链的最新区块号,以演示代码与以太坊之间的连接。
我们将使用 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
我们今天可以使用几乎任何以太坊客户端;例如 Geth 或 OpenEthereum(前称 Parity)。因为查询区块高度有点复杂,我们将在这里创建一个免费的 QuickNode 账户 这里,并轻松生成以太坊端点。它可以是测试网(如 Goerli 或 Sepolia)或主网。在你创建免费的以太坊端点后,复制你的 HTTP 提供程序端点:
你稍后需要此信息,因此请复制并保存。
现在,在你的项目目录中创建一个名为 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!