stephenjude / laravel-wallet
A simple wallet implementation for Laravel
Fund package maintenance!
stephenjude
Installs: 7 012
Dependents: 0
Suggesters: 0
Security: 0
Stars: 263
Watchers: 8
Forks: 21
Open Issues: 0
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/contracts: ^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.28
- phpunit/phpunit: ^10.0
README
A simple wallet implementation for Laravel.
Learn More
- A Simple Wallet Implementation for Laravel - Laravel News
- Interfaces and Traits: How to Use Them in Laravel Packages - Laravel Daily
- Laravel Virtual Wallet with Coupons: 3 Packages Demo - Laravel Daily
Installation
You can install the package via composer:
composer require stephenjude/laravel-wallet
You can publish and run the migrations with:
php artisan vendor:publish --tag="wallet-migrations"
php artisan migrate
Usage
Prepare User Model
use Stephenjude\Wallet\Interfaces\Wallet; use Stephenjude\Wallet\Traits\HasWallet; class User extends Authenticatable implements Wallet { use HasWallet; }
Deposit
$user = User::first(); $user->deposit(200.22); // returns the wallet balance: 200.22 $user->deposit(200); // returns the wallet balance: 400.22
Withdraw
$user->withdraw(200); // returns the wallet balance: 200.22 $user->withdraw(0.22); // returns the wallet balance: 200
Balance
$user->balance $user->wallet_balance
Exceptions
InvalidAmountException
The InvalidAmountException
is thrown whenever the deposit or withdrawal amount is a negative numeric value or zero.
InsufficientFundException
The InsufficientFundException
is thrown whenever the withdrawal amount is less than the user's wallet balance.
Alternative Package
If you are looking for somthing much bigger and elaborate checkout Bavix Laravel Wallet.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.