1. Go to this page and download the library: Download ianfoxdev/ledger library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ianfoxdev / ledger example snippets
use IanFoxDev\Ledger\{Account, Ledger, Leg};
use IanFoxDev\Ledger\Storage\PdoStore;
$ledger = new Ledger(new PdoStore($pdo)); // your application's connection
$ledger->open(Account::asset('cash:psp', 'USD'));
$ledger->open(Account::liability('user:42', 'USD')); // the platform owes the user
$ledger->open(Account::revenue('revenue:fees', 'USD'));
// A deposit: money arrives at the payment provider and is owed to the user.
$ledger->post('psp:ch_1001', [
Leg::debit('cash:psp', 50_00), // 50.00 USD in cents
Leg::credit('user:42', 50_00),
]);
// A purchase: from the user's balance to revenue.
$ledger->transfer('order:A-17', 'user:42', 'revenue:fees', 12_50, ['order' => 'A-17']);
// An amount set aside while a job runs; only what it cost is taken.
$hold = $ledger->hold('job:7', 'user:42', 3_00);
$ledger->capture('job:7:capture', $hold, 'revenue:fees', 2_37);
$ledger->release('job:7:release', $hold);
$ledger->balance('user:42'); // Amount 3513
$ledger->verify()->ok(); // true
$credits = $ledger->credits();
$credits->grant('order:5001', 'customer:acme:credits', 50_00,
from: 'cash:psp', revenue: 'revenue:jobs', breakage: 'revenue:breakage',
expiresAt: new DateTimeImmutable('+30 days'));
$credits->grant('promo:welcome:acme', 'customer:acme:credits', 5_00,
from: 'expense:promotions', revenue: 'revenue:jobs', breakage: 'expense:promotions',
expiresAt: new DateTimeImmutable('+7 days'));
$credits->consume('job:8', 'customer:acme:credits', 7_40); // 5.00 promo, then 2.40 paid
$credits->available('customer:acme:credits'); // 47.60, until the lot expires
$credits->expire('customer:acme:credits'); // after 30 days: 47.60 to breakage
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.