Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Number To Bangla Laravel Package

rakibhstu/number-to-bangla

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. Installation

    composer require rakibhstu/number-to-bangla
    

    Publish the config (optional):

    php artisan vendor:publish --provider="Rakibhstu\NumberToBangla\NumberToBanglaServiceProvider"
    
  2. 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: তেরো হাজার চার শত ঊনষাট
    
  3. 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মে)

Implementation Patterns

Core Workflows

  1. Dynamic Content Generation Use in Blade templates for localized UI:

    <p>Total: {{ NumberToBangla::numberToBanglaNumber($total) }} টাকা</p>
    <p>Date: {{ NumberToBangla::numberToBanglaMonth($month) }} {{ $year }}</p>
    
  2. API Responses Return Bangla-formatted data in JSON:

    return response()->json([
        'total_words' => NumberToBangla::numberToText($orderTotal),
        'formatted_amount' => NumberToBangla::numberToBanglaMoney($orderTotal)
    ]);
    
  3. Form Validation Messages Customize validation errors with Bangla:

    'numeric' => 'অবৈধ সংখ্যা। অনুগ্রহ করে একটি বৈধ সংখ্যা প্রবেশ করুন।',
    

    (Use numberToText() to convert error codes dynamically.)

  4. Database Localization Store English numbers but display Bangla in views:

    // Migration
    $table->integer('amount_in_english');
    
    // View
    {{ NumberToBangla::numberToBanglaMoney($product->amount_in_english) }}
    

Integration Tips

  • 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)
    ]);
    

Gotchas and Tips

Pitfalls

  1. Float Precision Issues

    • Problem: numberToBanglaMoney() may misformat floats like 123.010 (extra zeros).
    • Fix: Round inputs before conversion:
      NumberToBangla::numberToBanglaMoney(round($amount, 2));
      
  2. Month Input Validation

    • Problem: Passing 0 or >12 returns unexpected results.
    • Fix: Validate months first:
      $month = max(1, min(12, $inputMonth));
      NumberToBangla::numberToBanglaMonth($month);
      
  3. Large Number Limits

    • Problem: Inputs > 999999999999999 throw errors.
    • Fix: Validate or truncate:
      $number = min($input, 999999999999999);
      
  4. Config Overrides

    • Problem: Custom config keys may not persist after updates.
    • Fix: Merge defaults explicitly:
      config(['number-to-bangla.custom' => [
          'currency_symbol' => '৳',
          'decimal_separator' => '.'
      ]]);
      

Debugging

  • 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)

Extension Points

  1. Custom Word Mappings Override default words via config:

    'custom_words' => [
        'thousand' => 'হাজারো', // Customize "হাজার"
        'hundred' => 'শতক',    // Customize "শত"
    ],
    
  2. 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
        }
    }
    
  3. 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();
    });
    

Performance Tips

  • 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);
    
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver