1. Go to this page and download the library: Download merkeleon/web3.php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?phprequire_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
merkeleon / web3.php example snippets
useWeb3\Web3;
$web3 = new Web3('http://localhost:8545');
useWeb3\Web3;
useWeb3\Providers\HttpProvider;
useWeb3\RequestManagers\HttpRequestManager;
$web3 = new Web3(new HttpProvider(new HttpRequestManager('http://localhost:8545')));
// timeout
$web3 = new Web3(new HttpProvider(new HttpRequestManager('http://localhost:8545', 0.1)));
$web3->clientVersion(function($err, $version){
if ($err !== null) {
// do somethingreturn;
}
if (isset($version)) {
echo'Client version: ' . $version;
}
});
useWeb3\Web3;
$web3 = new Web3('http://localhost:8545');
$eth = $web3->eth;
useWeb3\Eth;
$eth = new Eth('http://localhost:8545');
useWeb3\Web3;
$web3 = new Web3('http://localhost:8545');
$net = $web3->net;
useWeb3\Net;
$net = new Net('http://localhost:8545');
$web3->batch(true);
$web3->clientVersion();
$web3->hash('0x1234');
$web3->execute(function($err, $data){
if ($err !== null) {
// do something// it may throw exception or array of exception depends on error type// connection error: throw exception// json rpc error: array of exceptionreturn;
}
// do something
});
$eth->batch(true);
$eth->protocolVersion();
$eth->syncing();
$eth->provider->execute(function($err, $data){
if ($err !== null) {
// do somethingreturn;
}
// do something
});
$net->batch(true);
$net->version();
$net->listening();
$net->provider->execute(function($err, $data){
if ($err !== null) {
// do somethingreturn;
}
// do something
});
$personal->batch(true);
$personal->listAccounts();
$personal->newAccount('123456');
$personal->provider->execute(function($err, $data){
if ($err !== null) {
// do somethingreturn;
}
// do something
});
useWeb3\Contract;
$contract = new Contract('http://localhost:8545', $abi);
// deploy contract
$contract->bytecode($bytecode)->new($params, $callback);
// call contract function
$contract->at($contractAddress)->call($functionName, $params, $callback);
// change function state
$contract->at($contractAddress)->send($functionName, $params, $callback);
// estimate deploy contract gas
$contract->bytecode($bytecode)->estimateGas($params, $callback);
// estimate function gas
$contract->at($contractAddress)->estimateGas($functionName, $params, $callback);
// get constructor data
$constructorData = $contract->bytecode($bytecode)->getData($params);
// get function data
$functionData = $contract->at($contractAddress)->getData($functionName, $params);