Installation
composer require rakibhstu/number-to-bangla
Publish the config (optional):
php artisan vendor:publish --provider="Rakibhstu\NumberToBangla\NumberToBanglaServiceProvider"
First Use Case Convert a number to Bangla words in a Blade template:
use Rakibhstu\NumberToBangla\Facades\NumberToBangla;
// In a controller or Blade file
$banglaText = NumberToBangla::numberToText(13459);
// Output: তেরো হাজার চার শত ঊনষাট
Key Facade Methods
numberToText(int $number) → Bangla words (e.g., 13459 → তেরো হাজার চার শত ঊনষাট)numberToBanglaNumber(int $number) → Bangla digits (e.g., 13459 → ১৩৪৫৯)numberToBanglaMoney(float $amount) → Formatted currency (e.g., 1345.05 → ১৩৪৫.০৫ টাকা)numberToBanglaMonth(int $month) → Bangla month name (e.g., 5 → মে)Dynamic Content Generation Use in Blade templates for localized UI:
<p>Total: {{ NumberToBangla::numberToBanglaNumber($total) }} টাকা</p>
<p>Date: {{ NumberToBangla::numberToBanglaMonth($month) }} {{ $year }}</p>
API Responses Return Bangla-formatted data in JSON:
return response()->json([
'total_words' => NumberToBangla::numberToText($orderTotal),
'formatted_amount' => NumberToBangla::numberToBanglaMoney($orderTotal)
]);
Form Validation Messages Customize validation errors with Bangla:
'numeric' => 'অবৈধ সংখ্যা। অনুগ্রহ করে একটি বৈধ সংখ্যা প্রবেশ করুন।',
(Use numberToText() to convert error codes dynamically.)
Database Localization Store English numbers but display Bangla in views:
// Migration
$table->integer('amount_in_english');
// View
{{ NumberToBangla::numberToBanglaMoney($product->amount_in_english) }}
Service Container Binding Bind the facade to a custom interface for testability:
$this->app->bind(
\Rakibhstu\NumberToBangla\Contracts\NumberToBanglaInterface::class,
\Rakibhstu\NumberToBangla\Facades\NumberToBangla::class
);
Caching Results Cache frequent conversions (e.g., static prices):
$cacheKey = 'bangla_price_' . $productId;
$price = Cache::remember($cacheKey, now()->addHours(1), function() use ($product) {
return NumberToBangla::numberToBanglaMoney($product->price);
});
Combining with Other Packages
Use with spatie/array-to-xml for localized XML exports:
$xmlData = ArrayToXml::convert([
'total' => NumberToBangla::numberToText($orderTotal)
]);
Float Precision Issues
numberToBanglaMoney() may misformat floats like 123.010 (extra zeros).NumberToBangla::numberToBanglaMoney(round($amount, 2));
Month Input Validation
0 or >12 returns unexpected results.$month = max(1, min(12, $inputMonth));
NumberToBangla::numberToBanglaMonth($month);
Large Number Limits
999999999999999 throw errors.$number = min($input, 999999999999999);
Config Overrides
config(['number-to-bangla.custom' => [
'currency_symbol' => '৳',
'decimal_separator' => '.'
]]);
Log Raw Outputs Debug unexpected results by logging inputs/outputs:
\Log::debug('Input:', [$number]);
\Log::debug('Output:', [NumberToBangla::numberToText($number)]);
Check for Typos Common typos in method names:
numberToBanglaText (incorrect)numberToText (correct)Custom Word Mappings Override default words via config:
'custom_words' => [
'thousand' => 'হাজারো', // Customize "হাজার"
'hundred' => 'শতক', // Customize "শত"
],
Add New Number Systems
Extend the NumberToBangla class to support Urdu or other scripts:
// app/Extensions/BanglaNumberExtension.php
namespace App\Extensions;
use Rakibhstu\NumberToBangla\NumberToBangla;
class BanglaNumberExtension extends NumberToBangla {
public function numberToUrduText($number) {
// Custom logic
}
}
Hook into Conversion Pipeline
Use Laravel’s app service to swap implementations:
$this->app->singleton(\Rakibhstu\NumberToBangla\Contracts\NumberToBanglaInterface::class, function ($app) {
return new \App\Services\CustomNumberToBangla();
});
Avoid Repeated Calls Store converted values in model attributes:
public function getBanglaAmountAttribute() {
return NumberToBangla::numberToBanglaMoney($this->amount);
}
Batch Processing
Use array_map for bulk conversions:
$banglaNumbers = array_map([NumberToBangla::class, 'numberToBanglaNumber'], $englishNumbers);
How can I help you explore Laravel packages today?