PHP code example of dnj / laravel-account

1. Go to this page and download the library: Download dnj/laravel-account 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/ */

    

dnj / laravel-account example snippets


use dnj\Account\Contracts\IAccount;
use dnj\Account\Contracts\IAccountManager;
use dnj\Account\Contracts\AccountStatus;
use dnj\Currency\Contracts\ICurrencyManager;

$currencyManager = app(ICurrencyManager::class);
$currency = $currencyManager->firstByCode("USD");

$accountManager = app(IAccountManager::class);

/**
 * @var IAccount $account
 */
$account = $accountManager->create(
    title: 'Profits',
    userId: Auth::user()->id,
    currencyId: $currency->getId(),
    status: AccountStatus::ACTIVE,
    canSend: true,
    canReceive: true,
    meta: ["key" => "value"],
    userActivityLog: true
);

return [
    // Define your user model class for connect accounts to users. Example: App\User:class
    'user_model' => null,
    
    // Enable http restful routes.
    'route_enable' => true,
    
    // Prefix of routes. By default routes register with /api/{prefix}/{accounts|transactions} pattern.
    'route_prefix' => null,
];

use dnj\Account\Contracts\IAccount;
use dnj\Account\Contracts\IAccountManager;
use dnj\Account\Contracts\AccountStatus;
use dnj\Currency\Contracts\ICurrencyManager;

$currencyManager = app(ICurrencyManager::class);
$currency = $currencyManager->firstByCode("USD");

$accountManager = app(IAccountManager::class);

/**
 * @var IAccount $account
 */
$account = $accountManager->create(
    title: 'Profits',
    userId: Auth::user()->id,
    currencyId: $currency->getId(),
    status: AccountStatus::ACTIVE,
    canSend: true,
    canReceive: true,
    meta: ["key" => "value"],
    userActivityLog: true
);


use dnj\Account\Contracts\IAccountManager;
use dnj\Account\Contracts\AccountStatus;

$accountManager = app(IAccountManager::class);
$account = $accountManager->update(
    accountId: 2,
    changes: array(
        'status' => AccountStatus::DEACTIVE,
    ),
    userActivityLog: true
);

use dnj\Account\Contracts\IAccountManager;

$accountManager = app(IAccountManager::class);
$accountManager->delete(
    accountId: $account->getId(),
    userActivityLog: true
);

use dnj\Account\Contracts\IAccountManager;
use dnj\Account\Contracts\ITransactionManager;
use dnj\Account\Contracts\ITransaction;
use dnj\Number\Number;

$accountManager = app(IAccountManager::class);

$profits = $accountManager->getByID(1);
$salary = $accountManager->getByID(2);

$transactionManager = app(ITransactionManager::class);

/**
 * @var ITransaction $transaction
 */
$transaction = $transactionManager->transfer(
    fromAccountId: $profits->getId(),
    toAccountId: $salary->getId(),
    amount: Number::fromInput(2501.55),
    meta: [
        'month' => '2023-01'
    ],
    force: false,
    userActivityLog: true
);


use dnj\Account\Contracts\ITransactionManager;
use dnj\Account\Contracts\ITransaction;

$transactionManager = app(ITransactionManager::class);

/**
 * @var ITransaction $transaction
 */
$transaction = $transactionManager->update(
    transactionId: 55,
    meta: [
        'month' => '2023-01',
        'over-time' => 21
    ]
);

use dnj\Account\Contracts\ITransactionManager;
use dnj\Account\Contracts\ITransaction;

$transactionManager = app(ITransactionManager::class);

/**
 * @var ITransaction $rollbackTransaction new transaction that just made for rollback
 */
$rollbackTransaction = $transactionManager->rollback(55);
bash
php artisan migrate
bash
php artisan vendor:publish --provider="dnj\Account\AccountServiceProvider" --tag="config"